Verticaで利用できるトランザクション分離レベル

Verticaはトランザクションをサポートしているデータベースです。
Verticaでは、標準のANSI SQL-92の分離レベルの内、以下を使用できます。
分離レベルダーティリードファジーリードファントムリード
READ COMMITTED 発生しない発生する発生する
SERIALIZABLE発生しない発生しない発生しない
※Verticaのデフォルトの分離レベルはREAD COMMITTEDです。

残りの分離レベルについても指定することは可能ですが、それぞれ別の分離レベルに自動で置き換えられますのでご注意ください。
READ UNCOMMITTEDREAD COMMITTEDに置き換えられます
REPEATABLE READSERIALIZABLEに置き換えられます


トランザクション分離レベルの変更方法

デフォルトのトランザクション分離レベルはREAD COMMITTEDですが、必要に応じて変更が可能です。

セッション単位で分離レベルを変更する方法

例)トランザクション分離レベルをSERIALIZABLEに変更する場合

データベース単位で分離レベルを変更する方法

例)testデータベースのトランザクション分離レベルをSERIALIZABLEに変更する場合


現在のトランザクション分離レベルはSHOW TRANSACTION_ISOLATIONコマンドで確認できます。


AUTO COMMITについて

VerticaはデフォルトではAUTO COMMIT(自動コミット)は無効になっています。
そのため、更新した内容を確定させたい場合は明示的にCOMMITを実行する必要があります。
※ただし、COPYコマンドについてはデフォルトでAUTO COMMITになります。

なお、AUTO COMMITの設定を変更したい場合は、以下のコマンドを実行することでセッションレベルでオン/オフを切り替えることができます。

※大文字小文字の表記は上記例の通りに入力してください。

検証バージョンについて

この記事の内容はVertica 9.1で確認しています。