Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Transaktionen und Isolationsstufen verwenden » Funktionsweise von Sperren

 

Objekte, die gesperrt werden können

Zur Gewährleistung der Datenbankkonsistenz und zur Unterstützung der entsprechenden Isolationsstufen zwischen Transaktionen verwendet SQL Anywhere folgende Arten von Sperren:

  • Schemasperren   Diese Sperren kontrollieren die Möglichkeit, Schemaänderungen durchzuführen. Eine Transaktion kann beispielsweise das Schema einer Tabelle sperren und damit andere Transaktionen daran hindern, die Struktur der Tabelle zu ändern.

  • Zeilensperren   Diese Sperren werden benutzt, um die Konsistenz zwischen parallelen Transaktionen auf Zeilenebene zu gewährleisten. Eine Transaktion kann beispielsweise eine bestimmte Zeile sperren, um zu verhindern, dass die Zeile durch eine andere Transaktion geändert wird, und eine Transaktion muss eine Schreibsperre auf eine Zeile setzen, wenn sie beabsichtigt, die Zeile zu ändern. Um die Parallelität zu maximieren, können die Zeilenbereiche mit und ohne Schlüssel separat gesperrt werden. Das Aktualisieren von Nicht-Schlüsselspalten einer Zeile beeinträchtigt nicht das Einfügen und Löschen von Fremdzeilen, die auf diese Zeile verweisen.

  • Tabellensperren   Diese Sperren werden benutzt, um die Konsistenz zwischen parallelen Transaktionen auf Tabellenebene zu gewährleisten. Beispielsweise kann eine Transaktion, welche die Struktur einer Tabelle durch Einfügen einer neuen Spalte ändert, diese Tabelle sperren, sodass andere Transaktionen durch die Schemaänderung nicht beeinflusst werden. In einem solchen Fall ist es besonders wichtig, dass andere Transaktionen am Zugriff gehindert werden, damit keine Fehler auftreten.

  • Positionssperren   Diese Sperren werden benutzt, um die Konsistenz innerhalb eines sequenziellen oder indexierten Table Scans zu gewährleisten. Transaktionen suchen normalerweise Zeilen sequenziell oder in der Reihenfolge ab, die von einem Index vorgeschrieben wird. In beiden Fällen kann eine Sperre auf die Suchposition gesetzt werden. Beispiel:Wenn in einem Index eine Sperre gesetzt wird, kann damit verhindert werden, dass eine andere Transaktion eine Zeile mit einem bestimmten Wert oder Wertbereich einfügt.

Schemasperren bieten einen Mechanismus, der verhindert, dass sich Schemaänderungen unbeabsichtigt auf aktive Transaktionen auswirken. Zeilensperren, Tabellensperren und Positionssperren haben jeweils separate Zwecke, aber sie beeinflussen sich gegenseitig. Jeder Sperrentyp verhindert bestimmte Inkonsistenzen. Je nach der gewählten Isolationsstufe verwendet der Datenbankserver einige oder alle Sperrentypen, um das erforderliche Maß an Konsistenz aufrecht zu halten.

 Sperrendauer