*[情報処理]Isolationレベル
http://www.microsoft.com/japan/msdn/sqlserver/columns/webtech/webtech3.asp
かな〜りわかっりやっしぃ。
- 更新データの損失・・・更新トランザクション中に排他ロックがかからず、別のトランザクションが実行できてしまうこと。
- ダーティ リード ・・・別のトランザクションによってデータが更新された状態(だけど、まだcommitしてない)のデータを読んでしまうこと。
- 反復不可能読み取り ・・・トランザクション中に何回か値を読むときに、読むたびに値が変わってること。
- ファントム値・・・トランザクション中に、突然、現れたり消えてしまう、お化け (Phantoms) のようなデータ。ユーザー 1 は検索条件を使って一連の行を読み取る。ユーザー 2 は同じ検索条件を満たす 1 つまたは複数の行を挿入した後、コミットします。ユーザー 1 が検索条件を使って再び行を読み取ると、前は存在しなかった行が現れる。
- Read Uncommitted・・・ロックはDBの更新に対して取得する。
- Read Committed・・・ロックはDBの読み取り、更新に対して取得する。読み取りしたデータのロックは読み取り後に解除するが、更新したデータのロックはトランザクション終了まで保持される。
- Repeatable Read・・・ロックはDBの読み取り、更新に対して取得する。読み取り・更新したデータはトランザクション終了まで保持する。
- Serializable・・・すべてのトランザクションに対し、ロックをかける。トランザクションが並列に動作しない(同時並列実行がない)。
Isolationレベル | ダーティ リード | 反復不可能読み取り | ファントム値 |
Read uncommited |
はい |
はい |
はい |
Read committed |
いいえ |
はい |
はい |
Repeatable read |
いいえ |
いいえ |
はい |
Serializable |
いいえ |
いいえ |
いいえ |