レベルエンター山本大のブログ

面白いプログラミング教育を若い人たちに

BLOCKVROCKリファレンス目次はこちら

ロックヒントとトランザクション分離レベルの組み合わせによる読み取りのWaitパターン

Sqlserverでは、Select文でロックヒントを記述することができる。

■ロックヒント
http://msdn.microsoft.com/ja-jp/library/ms177634.aspx

トランザクション分離レベルとヒントの組み合わせによって、

クエリのブロック状況が異なるので、注意が必要。

とくに、ロックヒントをつけないもの(表中では「ヒントなし」と表記)

をブロックしてしまうパターンは影響が大きいので注意が必要。

ロック側分離レベル ロック側クエリヒント 非ロック(負け)側分離レベル 非ロック(負け)側クエリヒント 非ロック(負け)側動作
serializable Xlock serializable Xlock WAIT
UpdLock WAIT
ヒントなし WAIT
Nolock 読み取り可能
read committed Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
read uncommitted Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
UpdLock serializable Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
read committed Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
read uncommitted Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
ヒントなし serializable Xlock WAIT
UpdLock 読み取り可能
ヒントなし 読み取り可能
Nolock 読み取り可能
read committed Xlock WAIT
UpdLock 読み取り可能
ヒントなし 読み取り可能
Nolock 読み取り可能
read uncommitted Xlock WAIT
UpdLock 読み取り可能
ヒントなし 読み取り可能
Nolock 読み取り可能
read committed Xlock serializable Xlock WAIT
UpdLock WAIT
ヒントなし WAIT
Nolock 読み取り可能
read committed Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
read uncommitted Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
UpdLock serializable Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
read committed Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
read uncommitted Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
ヒントなし serializable Xlock 読み取り可能
UpdLock 読み取り可能
ヒントなし 読み取り可能
Nolock 読み取り可能
read committed Xlock 読み取り可能
UpdLock 読み取り可能
ヒントなし 読み取り可能
Nolock 読み取り可能
read uncommitted Xlock 読み取り可能
UpdLock 読み取り可能
ヒントなし 読み取り可能
Nolock 読み取り可能
read uncommitted Xlock serializable Xlock WAIT
UpdLock WAIT
ヒントなし WAIT
Nolock 読み取り可能
read committed Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
read uncommitted Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
UpdLock serializable Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
read committed Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
read uncommitted Xlock WAIT
UpdLock WAIT
ヒントなし 読み取り可能
Nolock 読み取り可能
ヒントなし serializable Xlock 読み取り可能
UpdLock 読み取り可能
ヒントなし 読み取り可能
Nolock 読み取り可能
read committed Xlock 読み取り可能
UpdLock 読み取り可能
ヒントなし 読み取り可能
Nolock 読み取り可能
read uncommitted Xlock 読み取り可能
UpdLock 読み取り可能
ヒントなし 読み取り可能
Nolock 読み取り可能