!!!分離レベル (Isolation Level) [Database] !トランザクション同時実行時の問題点 トランザクションを同時実行した場合に、トランザクションの分離レベルによっていくつかの問題が発生する。 ::更新データの損失 (Lost Updates) ある更新処理による更新データが確定される前に、他の更新処理により変更されてしまう。 {{ref_image isolationlevel_01.gif}} ::ダーティーリード (Dirty Read) 別のトランザクションにより更新されたが、まだコミットされていないデータを読んでしまえる。 {{ref_image isolationlevel_02.gif}} ::反復不可能読み取り トランザクション中に、繰り返し同じデータを参照するとき、そのつど値が変わってしまう状態。 同一トランザクション内で、同じSELECT文が実行された場合に、同じ紹介結果が保証されない。 {{ref_image isolationlevel_03.gif}} ::ファントムリード トランザクション中に、突然現れたり消えたりしてしまうデータ。 同一トランザクション内で、同じSELECT文を実行した場合に、 他の更新処理により条件に合致するようになったデータまで紹介結果に入る。 {{ref_image isolationlevel_04.gif}} !分離レベル (Isolation Level) ,Isolation(分離レベル),Dirty Read(ダーティーリード),Non-Repeatable Reads(反復不可能読み取り),Phantom Reads(ファントムリード) ,Read Uncommitted(非コミット読み取り),起こりうる,起こりうる,起こりうる ,Read Committed(コミット済み読み取り),−,起こりうる,起こりうる ,Repeatable Read(繰り返し可能読み取り),−,−,起こりうる ,Serializable(直列化可能),−,−,− !!製品 !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]