テーブルのヒントについてMSDNをよく読みましたが、ロックの粒度のデフォルトが見つからないようです。次のクエリがあるとします。
SELECT TOP (1) * FROM MyTable WITH (UPDLOCK, READPAST) ORDER BY SomeColumn ASC;
ご覧のとおり、ヒントを指定UPDLOCKしましたが、やREADPASTなどの粒度のヒントは指定していません。TABLOCKROWLOCK
デフォルトで使用される粒度ロックレベルはどれですか?
テーブルのヒントについてMSDNをよく読みましたが、ロックの粒度のデフォルトが見つからないようです。次のクエリがあるとします。
SELECT TOP (1) * FROM MyTable WITH (UPDLOCK, READPAST) ORDER BY SomeColumn ASC;
ご覧のとおり、ヒントを指定UPDLOCKしましたが、やREADPASTなどの粒度のヒントは指定していません。TABLOCKROWLOCK
デフォルトで使用される粒度ロックレベルはどれですか?
'デフォルト'はありません。粒度(行、ページ、(パーティション|オブジェクト))は、オブジェクトの許可されたオプション(allow_page_locks / allow_row_locks)、操作インテントに関する情報(プローブ、スキャン、挿入)、行セットの推定サイズ、および他の要因の数(分離レベル、ファイルグループは読み取り専用など)。ほとんどの場合、シングルトン操作の場合は行レベルの粒度、スキャンの場合はページレベルの粒度が得られます。投稿したクエリはスキャンであるため、おそらくページレベルの粒度で処理されます。