Isolation Levels

An important aspect of transaction processing is the database server's ability to isolate an operation. ANSI standards define four levels of isolation. Each higher level provides transactions a greater degree of isolation from other transactions, and thus a greater assurance that the database remains internally consistent.

The isolation level controls the degree to which operations and data in one transaction are visible to operations in other, concurrent transactions. Table-level snapshot versioning supports the highest level of isolation. At this level, all schedules may be serialized.

Table-level snapshot versioning maintains this high level of isolation between concurrent transactions by following these rules:
The level of isolation that table-level snapshot versioning provides prevents several types of inconsistencies, including (most commonly encountered):

Table-level snapshot versioning ensures that only one user can modify a table at any given time, keeps the changes invisible to other users until the changes are complete, and maintains timestamped snapshots of data objects in use at any time.

While IQ allows you to set the isolation level to 0, 1, 2, or 3 (comparable to ANSI levels 1, 2, 3, or 4), there is no reason to do so. All users execute at isolation level 4, even if you set a different level. There is no performance advantage to setting a lower isolation level.

For more information on preventing concurrent transactions from accessing or modifying tables, see the LOCK TABLE statement in Reference: Statements and Options.