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

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Datenbanken erstellen » Transaktionen und Isolationsstufen verwenden » Isolationsstufen wählen

 

Typische Transaktionen für verschiedene Isolationsstufen

Verschiedene Isolationsstufen eignen sich für bestimmte Arten von Aufgaben. Entscheiden Sie mithilfe der nachstehenden Informationen, welche Isolationsstufe sich am besten für welche Aufgabe eignet.

Typische Stufe 0-Transaktionen

Transaktionen, die Daten durchsuchen oder eintragen, können mehrere Minuten dauern und eine große Anzahl von Zeilen lesen. Wird dafür Isolationsstufe 2 oder 3 verwendet, kann die Parallelität darunter leiden. Für diese Art von Transaktionen verwendet man gewöhnlich die Isolationsstufen 0 oder 1.

Eine Decision Support-Anwendung, die große Mengen an Informationen von der Datenbank liest, um statistische Zusammenfassungen zu erstellen, wird beispielsweise nicht wesentlich beeinflusst, wenn sie einige Zeilen liest, die später geändert werden. Ist für so eine Anwendung eine hohe Isolationsstufe erforderlich, so können Lesesperren für große Datenmengen gesetzt werden, wodurch andere Anwendungen keinen Schreibzugang dazu haben.

Typische Stufe 1-Transaktionen

Isolationsstufe 1 ist in Verbindung mit Cursorn nützlich, da diese Kombination Cursorstabilität gewährleistet, ohne die Sperranforderungen wesentlich zu erhöhen. SQL Anywhere erzielt diesen Vorteil durch die vorzeitige Freigabe von Lesesperren, die für die aktuelle Zeile eines Cursors gesetzt wurden. Diese Sperren müssen bei Transaktionen mit Isolationsstufen 2 oder 3 bis zum Abschluss der Transaktion andauern, damit wiederholbare Lesevorgänge gewährleistet sind.

Zum Beispiel eignet sich eine Transaktion, die die Inventarlisten über einen Cursor aktualisiert, für diese Isolationsstufe, da keine Änderungen aufgrund von Kauf und Verkauf verloren gehen würden und diese häufigen Änderungen nur eine minimale Auswirkung auf andere Transaktionen haben.

Typische Stufe 2-Transaktionen

Bei Isolationsstufe 2 können Zeilen, die Ihrem Kriterium entsprechen, nicht von anderen Transaktionen verändert werden. Sie können diese Isolationsstufe verwenden, wenn Sie Zeilen öfter als einmal lesen müssen und sich darauf verlassen wollen, dass sich die erste erhaltene Ergebnismenge nicht ändert.

Da aber diese Isolationsstufe relativ viele Lesesperren erfordert, sollte sie nur verwendet werden, wenn dies unbedingt erforderlich ist. Wie auch bei Transaktionen mit Isolationsstufe 3 kann eine sorgfältige Planung Ihrer Datenbank und der Indizes die Anzahl der erforderlichen Sperren verringern und die Performance Ihrer Datenbank wesentlich steigern.

Typische Stufe 3-Transaktionen

Isolationsstufe 3 ist für Transaktionen notwendig, die große Sicherheit verlangen. Die Eliminierung von Phantomzeilen ermöglicht Ihnen die Ausführung von Operationen mit mehreren Schritten auf einer Anzahl von Zeilen, ohne dass Sie befürchten müssen, dass während Ihrer Transaktion neue Zeilen auftauchen und das Ergebnis verfälschen.

Auch wenn Isolationsstufe 3 ein hohes Maß an Integrität bietet, sollte sie in großen Systemen, die eine Vielzahl von gleichzeitigen Transaktionen unterstützen, sparsam verwendet werden. SQL Anywhere bringt auf dieser Isolationsstufe die meisten Sperren an und erhöht somit die Wahrscheinlichkeit, dass eine Transaktion den Ablauf von vielen anderen behindert.