ロックの種類


ロックの種類(request_mode)の意味は以下の通り。


S (共有ロック)
・・・他のトランザクションからの読込は可能。更新は不可となる。


X (排他ロック)
・・・他のトランザクションからの読込・更新が共に不可となる。
INSERT、UPDATE、DELETEを実行するとこのロックになる。

U (更新ロック)
・・・他のトランザクションからの読込は可能。更新は不可となる。
SELECTで WITH( UPDLOCK )を指定するとこのロックになる。


IS (インテント共有)
IX (インテント排他)
SIX (インテント排他の共有)
・・・インテントロックは自分自身の下位のリソースにロックがあることを示すフラグのようなもの。
例えば、テーブルにIXがある場合はそのテーブルのどこかにXがあることを示す。
なのでロックの発生状況の詳細を知りたい場合はインテントロックは無視してもよいみたい。



関連:ロックの状況を調べるには・・・

http://d.hatena.ne.jp/haradago/20121207/p1