| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「分離レベル (Isolation Level)」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
2行目: 2行目:
 
[[Database]] |  
 
[[Database]] |  
  
====トランザクション同時実行時の問題点====
+
====[[トランザクション]]同時実行時の問題点====
トランザクションを同時実行した場合に、トランザクションの分離レベルによっていくつかの問題が発生する。
+
[[トランザクション]]を同時実行した場合に、[[トランザクション]]の分離レベルによっていくつかの問題が発生する。
 
=====更新データの損失 (Lost Updates)=====
 
=====更新データの損失 (Lost Updates)=====
 
ある更新処理による更新データが確定される前に、他の更新処理により変更されてしまう。
 
ある更新処理による更新データが確定される前に、他の更新処理により変更されてしまう。
 
[[File:0075_isolationlevel_01.gif]]
 
[[File:0075_isolationlevel_01.gif]]
  
=====ダーティーリード (Dirty Read)=====
+
=====ダーティーリード (Dirty [[R]]ead)=====
別のトランザクションにより更新されたが、まだコミットされていないデータを読んでしまえる。
+
別の[[トランザクション]]により更新されたが、まだコミットされていないデータを読んでしまえる。
 
[[File:0076_isolationlevel_02.gif]]
 
[[File:0076_isolationlevel_02.gif]]
 
=====反復不可能読み取り=====
 
=====反復不可能読み取り=====
トランザクション中に、繰り返し同じデータを参照するとき、そのつど値が変わってしまう状態。 同一トランザクション内で、同じSELECT文が実行された場合に、同じ紹介結果が保証されない。
+
[[トランザクション]]中に、繰り返し同じデータを参照するとき、そのつど値が変わってしまう状態。 同一[[トランザクション]]内で、同じSELECT文が実行された場合に、同じ紹介結果が保証されない。
 
[[File:0077_isolationlevel_03.gif]]
 
[[File:0077_isolationlevel_03.gif]]
 
=====ファントムリード=====
 
=====ファントムリード=====
トランザクション中に、突然現れたり消えたりしてしまうデータ。 同一トランザクション内で、同じSELECT文を実行した場合に、 他の更新処理により条件に合致するようになったデータまで紹介結果に入る。
+
[[トランザクション]]中に、突然現れたり消えたりしてしまうデータ。 同一[[トランザクション]]内で、同じSELECT文を実行した場合に、 他の更新処理により条件に合致するようになったデータまで紹介結果に入る。
 
[[File:0078_isolationlevel_04.gif]]
 
[[File:0078_isolationlevel_04.gif]]
  
21行目: 21行目:
 
{|class="wikitable"
 
{|class="wikitable"
 
!Isolation(分離レベル)
 
!Isolation(分離レベル)
!Dirty Read(ダーティーリード)
+
!Dirty [[R]]ead(ダーティーリード)
!Non-Repeatable Reads(反復不可能読み取り)
+
!Non-[[R]]epeatable [[R]]eads(反復不可能読み取り)
!Phantom Reads(ファントムリード)
+
!Phantom [[R]]eads(ファントムリード)
 
|-
 
|-
|Read Uncommitted(非コミット読み取り)
+
|[[R]]ead Uncommitted(非コミット読み取り)
 
|起こりうる
 
|起こりうる
 
|起こりうる
 
|起こりうる
 
|起こりうる
 
|起こりうる
 
|-
 
|-
|Read Committed(コミット済み読み取り)
+
|[[R]]ead Committed(コミット済み読み取り)
 
|-
 
|-
 
|起こりうる
 
|起こりうる
 
|起こりうる
 
|起こりうる
 
|-
 
|-
|Repeatable Read(繰り返し可能読み取り)
+
|[[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)

ある更新処理による更新データが確定される前に、他の更新処理により変更されてしまう。 0075 isolationlevel 01.gif

ダーティーリード (Dirty Read)

別のトランザクションにより更新されたが、まだコミットされていないデータを読んでしまえる。 0076 isolationlevel 02.gif

反復不可能読み取り

トランザクション中に、繰り返し同じデータを参照するとき、そのつど値が変わってしまう状態。 同一トランザクション内で、同じSELECT文が実行された場合に、同じ紹介結果が保証されない。 0077 isolationlevel 03.gif

ファントムリード

トランザクション中に、突然現れたり消えたりしてしまうデータ。 同一トランザクション内で、同じSELECT文を実行した場合に、 他の更新処理により条件に合致するようになったデータまで紹介結果に入る。 0078 isolationlevel 04.gif

分離レベル (Isolation Level)

Isolation(分離レベル) Dirty Read(ダーティーリード) Non-Repeatable Reads(反復不可能読み取り) Phantom Reads(ファントムリード)
Read Uncommitted(非コミット読み取り) 起こりうる 起こりうる 起こりうる
Read Committed(コミット済み読み取り) 起こりうる 起こりうる
Repeatable Read(繰り返し可能読み取り) 起こりうる
Serializable(直列化可能)

製品

DB2