Skip to content
The latest version of DbVisualizer was released 2024-03-11DOWNLOAD HERE ->

Setting Transaction Isolation

When you connect to a database that is concurrently modified by other users and processes, the Transaction Isolation Level specifies how changes made by others will affect you and how your changes will affect others.

To set the Transaction Isolation Level for a connection,

  1. Double-click the connection node in the Databases tree to open an Object View tab for it,
  2. Select the Properties tab,
  3. Select the Transaction category,
  4. Pick an appropriate Transaction Isolation Level from the drop-down list.

The levels that are supported depends on the database you are connecting to. Many databases support the levels as defined in the JDBC specification, which are described in the table below. But be aware that there are also many databases that have their own levels and/or terminology.

LevelTransactionsDirty ReadsNon-Repeatable ReadsPhantom Reads
TRANSACTION_NONENot supportedN/AN/AN/A
TRANSACTION_READ_COMMITTEDSupportedPreventedAllowedAllowed
TRANSACTION_READ_UNCOMMITTEDSupportedAllowedAllowedAllowed
TRANSACTION_REPEATABLE_READSupportedPreventedPreventedAllowed
TRANSACTION_SERIALIZABLESupportedPreventedPreventedPrevented

A dirty read occurs when transaction A reading a value before transaction B has made permanent, i.e. before it has been committed.

A non-repeatable read occurs when transaction A retrieves a row, transaction B subsequently updates the row, and transaction A later retrieves the same row again. Transaction A retrieves the same row twice but sees different data.

A phantom read occurs when transaction A retrieves a set of rows satisfying a given condition, transaction B subsequently inserts or updates a row such that the row now meets the condition in transaction A, and transaction A later repeats the conditional retrieval. Transaction A now sees an additional row. This row is referred to as a phantom.

Please see the database documentation for the description of transaction isolation values supported by your database.