There are four levels of transaction isolation that are
defined by the ANSI/ISO SQL.
IBM® Netezza® SQL supports the SQL grammar for defining all four isolation levels:
- Read committed
- Read uncommitted
- Repeatable read
- Serializable
The only isolation level that Netezza 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.
Table 1. Isolation levelsIsolation 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 |