Isolationsstufe
Es gibt vier Transaktionsisolationsstufen, die über ANSI/ISO-SQL definiert werden. Die SQL-Grammatik zur Definition aller vier Isolationsebenen wird unterstützt:
- Lesen mit Festschreiben
- Lesen ohne Festschreibung
- Wiederholbarer Lesevorgang
- Serialisierbar
Die einzige Isolationsebene, die der Netezza Performance Server SQL implementiert, ist jedoch serialisierbar, was den höchstmöglichen Grad an Konsistenz bietet.
Die folgenden Isolationsstufen verhindern die folgenden Vorkommen zwischen gleichzeitigen Transaktionen:
- Fehlerhafte Leseoperationen (Dirty Reads)
- Eine Transaktion liest Daten, die von gleichzeitigen, nicht festgeschrieben Transaktionen geschrieben werden.
- Nicht wiederholbare Lesevorgänge (Nonrepeatable Reads)
- Eine Transaktion liest erneut Daten, die sie zuvor gelesen hat, und stellt fest, dass die Daten von einer anderen Transaktion modifiziert wurden (die die Daten seit dem ursprünglichen Lesevorgang festgeschrieben hat).
- Scheinleseoperation (Phantom read)
- Eine Transaktion führt eine Abfrage erneut aus, die eine Zeilengruppe zurückgibt, die eine Suchbedingung erfüllt, und stellt fest, dass sich die Zeilengruppe aufgrund einer anderen kürzlich festgeschriebenen Transaktion geändert hat.
In der folgenden Tabelle werden die vier Isolationsstufen beschrieben.
| Isolationsstufe | Lesezugriff ohne Sperren (Dirty Read) | Nicht wiederholbar | Scheinleseoperation |
|---|---|---|---|
| Lesen ohne COMMIT | Möglich | Möglich | Möglich |
| Lesen mit COMMIT | Nicht möglich | Möglich | Möglich |
| wiederholbares Lesen | Nicht möglich | Nicht möglich | Möglich |
| serialisierbar | Nicht möglich | Nicht möglich | Nicht möglich |