Read uncommitted (level 0) |
- Can read rows with or without write lock
- Applies no read locks
- Data may change during the refresh
- Allows dirty reads, nonrepeatable reads, and phantom
rows
|
Read committed (level 1) |
- Can read only rows with no write lock
- Read-locks only the current row and releases it
immediately after reading
- Data may change during the refresh
- Prevents dirty reads
- Allows nonrepeatable reads and phantom rows
|
Repeatable read (level 2) |
- Can read only rows with no write lock
- Read-locks each row as it is read; holds the lock until
the refresh is done
- Prevents dirty reads and nonrepeatable reads
- Allows phantom rows
|
Serializable (level 3) |
- Can read only rows with no write lock
- Read-locks every row for the duration of the refresh
operation
- Prevents dirty reads, nonrepeatable reads, and phantom
rows
|
Snapshot |
- Applies no read locks
- Can read any row
- The database takes a snapshot of committed data when the
refresh operation reads the first row
|
Share mode (the default) |
- Allows other transactions to read the underlying table
during the refresh operation
- Uses shared table locks
|
Exclusive mode |
- Does not change the isolation level
- Locks the underlying table to ensure that the text index
is updated to be consistent with committed data in the table
- If an exclusive table lock cannot be obtained, the
refresh fails
|