「分離レベル (Isolation Level)」の版間の差分
ナビゲーションに移動
検索に移動
2行目: | 2行目: | ||
[[Database]] | | [[Database]] | | ||
− | ==== | + | ====[[トランザクション]]同時実行時の問題点==== |
− | + | [[トランザクション]]を同時実行した場合に、[[トランザクション]]の分離レベルによっていくつかの問題が発生する。 | |
=====更新データの損失 (Lost Updates)===== | =====更新データの損失 (Lost Updates)===== | ||
ある更新処理による更新データが確定される前に、他の更新処理により変更されてしまう。 | ある更新処理による更新データが確定される前に、他の更新処理により変更されてしまう。 | ||
[[File:0075_isolationlevel_01.gif]] | [[File:0075_isolationlevel_01.gif]] | ||
− | =====ダーティーリード (Dirty | + | =====ダーティーリード (Dirty [[R]]ead)===== |
− | + | 別の[[トランザクション]]により更新されたが、まだコミットされていないデータを読んでしまえる。 | |
[[File:0076_isolationlevel_02.gif]] | [[File:0076_isolationlevel_02.gif]] | ||
=====反復不可能読み取り===== | =====反復不可能読み取り===== | ||
− | + | [[トランザクション]]中に、繰り返し同じデータを参照するとき、そのつど値が変わってしまう状態。 同一[[トランザクション]]内で、同じSELECT文が実行された場合に、同じ紹介結果が保証されない。 | |
[[File:0077_isolationlevel_03.gif]] | [[File:0077_isolationlevel_03.gif]] | ||
=====ファントムリード===== | =====ファントムリード===== | ||
− | + | [[トランザクション]]中に、突然現れたり消えたりしてしまうデータ。 同一[[トランザクション]]内で、同じSELECT文を実行した場合に、 他の更新処理により条件に合致するようになったデータまで紹介結果に入る。 | |
[[File:0078_isolationlevel_04.gif]] | [[File:0078_isolationlevel_04.gif]] | ||
21行目: | 21行目: | ||
{|class="wikitable" | {|class="wikitable" | ||
!Isolation(分離レベル) | !Isolation(分離レベル) | ||
− | !Dirty | + | !Dirty [[R]]ead(ダーティーリード) |
− | !Non- | + | !Non-[[R]]epeatable [[R]]eads(反復不可能読み取り) |
− | !Phantom | + | !Phantom [[R]]eads(ファントムリード) |
|- | |- | ||
− | | | + | |[[R]]ead Uncommitted(非コミット読み取り) |
|起こりうる | |起こりうる | ||
|起こりうる | |起こりうる | ||
|起こりうる | |起こりうる | ||
|- | |- | ||
− | | | + | |[[R]]ead Committed(コミット済み読み取り) |
|- | |- | ||
|起こりうる | |起こりうる | ||
|起こりうる | |起こりうる | ||
|- | |- | ||
− | | | + | |[[R]]epeatable [[R]]ead(繰り返し可能読み取り) |
|- | |- | ||
|- | |- | ||
48行目: | 48行目: | ||
===製品=== | ===製品=== | ||
− | ====DB2==== | + | ====[[DB2]]==== |
*[http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.perf.doc/doc/c0004121.html?resultof=%22%e5%88%86%e9%9b%a2%e3%83%ac%e3%83%99%e3%83%ab%22%20 分離レベル] | *[http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.perf.doc/doc/c0004121.html?resultof=%22%e5%88%86%e9%9b%a2%e3%83%ac%e3%83%99%e3%83%ab%22%20 分離レベル] |
2020年2月16日 (日) 04:21時点における最新版
目次
分離レベル (Isolation Level)
Database |
トランザクション同時実行時の問題点
トランザクションを同時実行した場合に、トランザクションの分離レベルによっていくつかの問題が発生する。
更新データの損失 (Lost Updates)
ある更新処理による更新データが確定される前に、他の更新処理により変更されてしまう。
ダーティーリード (Dirty Read)
別のトランザクションにより更新されたが、まだコミットされていないデータを読んでしまえる。
反復不可能読み取り
トランザクション中に、繰り返し同じデータを参照するとき、そのつど値が変わってしまう状態。 同一トランザクション内で、同じSELECT文が実行された場合に、同じ紹介結果が保証されない。
ファントムリード
トランザクション中に、突然現れたり消えたりしてしまうデータ。 同一トランザクション内で、同じSELECT文を実行した場合に、 他の更新処理により条件に合致するようになったデータまで紹介結果に入る。
分離レベル (Isolation Level)
Isolation(分離レベル) | Dirty Read(ダーティーリード) | Non-Repeatable Reads(反復不可能読み取り) | Phantom Reads(ファントムリード) |
---|---|---|---|
Read Uncommitted(非コミット読み取り) | 起こりうる | 起こりうる | 起こりうる |
Read Committed(コミット済み読み取り) | - | 起こりうる | 起こりうる |
Repeatable Read(繰り返し可能読み取り) | - | - | 起こりうる |
Serializable(直列化可能) | - | - | - |
製品
DB2
© 2006 矢木浩人