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

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Transaktionen und Isolationsstufen » Isolationsstufen und Konsistenz » Snapshot-Isolation

 

Aktualisierungskonflikte und Snapshot-Isolation

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.