トランザクション・分離レベル

Oracle において提供されている分離レベルは READ COMMITED(コミット読取り)、SERIALIZABLE(シリアライズ可能)である。さらに 読取り専用モードが用意されている。

READ COMMITTED (コミット読取り)

Oracle のデフォルトの分離レベルである。他の DBMS においても、このレベルがデフォルトが多い。

SERIALIZABLE(シリアライズ可能)

これは簡単に言うとトランザクションをシリアライズ(直列化)。 しかし、すべてのトランザクションを直列化するということは同時に2人使用できないことになるので使い物にならない。

直列化するのは同じデータにアクセスするトランザクションである。しかし Oracle は問い合わせによるロックは発生しないという特徴がある。

文章がうまくまとめられない・・・中断

コミット読取り と シリアライズ可能 の比較

READ COMMITTEDSERIALIZABLE
ノン・リピータブル・リード発生するしない
ファントム・リード発生するしない
マテリアライズド・ビューの読み取りステートメントトランザクション
トランザクションにおける読み取り一貫性ステートメント単位トランザクション単位
問い合わせ時に行をロックするかしないしない
先行している競合しているトランザクションがコミット後にエラーが発生するか発生しないしない
先行している競合しているトランザクションのコミット後に後続のトランザクションにエラーが発生するか発生しない発生する

Oracle では行のデータの変更を時系列(システム変更番号(SCN)) を使って複数のバージョンもっている。(マルチバージョンと呼ばれる)
その機能をユーザーに明示的に使用することができるようになった機能が フラッシュバック問い合わせ 機能 Oracle 9i である。

つまり、Oracle では過去の任意の時間におけるスナップショットを取得することが可能ということ。



関連事項

トランザクション・分離レベルの関連トピックス

日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー