Isolation level
There are four levels of transaction isolation that are defined by the ANSI/ISO SQL. The SQL
grammar for defining all four isolation levels is supported:
- Read committed
- Read uncommitted
- Repeatable read
- Serializable
The only isolation level that Netezza Performance Server SQL implements, however, is serializable, which provides the highest possible level of consistency.
These isolation levels prevent
the following occurrences between concurrent transactions:
- Dirty reads
- A transaction reads data that is written by concurrent uncommitted transactions.
- Nonrepeatable reads
- A transaction rereads data that it previously read and finds that the data is modified by another transaction (that committed since the initial read).
- Phantom read
- A transaction reruns a query that returns a set of rows that satisfy a search condition and finds that the set of rows changed because of another recently committed transaction.
The following table describes the four isolation
levels.
Isolation level | Dirty read | Nonrepeatable | Phantom |
---|---|---|---|
read uncommitted | Possible | Possible | Possible |
read committed | Not possible | Possible | Possible |
repeatable read | Not possible | Not possible | Possible |
serializable | Not possible | Not possible | Not possible |