Auf Isolationsstufe 3 setzt eine Transaktion für jede gelesene Zeile eine Lesesperre. Normalerweise gibt eine Transaktion eine Sperre nicht vor dem Abschluss der Transaktion frei. Für die Serialisierbarkeit eines Schemas ist es wesentlich, dass eine Transaktion Sperren nicht vorzeitig freigibt.
SQL Anywhere hält Schreibsperren immer solange aufrecht, bis die Transaktion abgeschlossen ist. Das verhindert, dass eine andere Transaktion diese Zeile ändert und ein Zurücksetzen der ersten Transaktion unmöglich macht.
Lesesperren werden nur in einer besonderen Situation freigegeben: Auf Isolationsstufe 1 setzen Transaktionen eine Lesesperre für eine Zeile nur, wenn diese zur aktuellen Zeile eines Cursors wird. Auf Isolationsstufe 1 allerdings wird die Sperre freigegeben, sobald die Zeile nicht mehr aktuell ist. Dieses Verhalten kann akzeptiert werden, da der Datenbankserver auf Isolationsstufe 1 keine wiederholbaren Lesevorgänge garantieren muss.
Weitere Hinweise zu Isolationsstufen finden Sie unter Isolationsstufen wählen.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |