Mit der Snapshot-Isolation kann es zu Aktualisierungskonflikten kommen, wenn eine Transaktion eine alte Version einer Zeile sieht und versucht, diese zu aktualisieren oder zu löschen. Wenn das passiert, meldet der Datenbankserver einen Fehler, wenn er den Konflikt erkennt. Bei einer festgeschriebenen Änderung tritt das ein, wenn ein Aktualisieren oder Löschen versucht wird. Bei einer nicht-festgeschriebenen Änderung wird das Aktualisieren oder Löschen blockiert und der Datenbankserver gibt einen Fehler zurück, wenn die Änderung festgeschrieben wird.
Aktualisierungskonflikte können nicht auftreten, wenn "readonly-statement-snapshot" benutzt wird, da aktualisierbare Anweisungen mit einer Nicht-Snapshot-Isolation ausgeführt werden und jeweils die neueste Version der Datenbank berücksichtigen. Die Isolationsstufe "readonly-statement-snapshot" bietet daher viele Vorteile der Snapshot-Isolation, ohne große Änderungen einer Anwendung zu erfordern, die ursprünglich für die Ausführung auf einer anderen Isolationsstufe entwickelt wurde. Bei der Verwendung der Isolationsstufe readonly-statement-snapshot gilt:
Für Nur-Lesen-Anweisungen werden niemals Sperren gesetzt.
Nur-Lesen-Anweisungen berücksichtigen immer einen festgeschriebenen Status der Datenbank.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |