6

テーブルのヒントについてMSDNをよく読みましたが、ロックの粒度のデフォルトが見つからないようです。次のクエリがあるとします。

SELECT TOP (1) * FROM MyTable WITH (UPDLOCK, READPAST) ORDER BY SomeColumn ASC;

ご覧のとおり、ヒントを指定UPDLOCKしましたが、やREADPASTなどの粒度のヒントは指定していません。TABLOCKROWLOCK

デフォルトで使用される粒度ロックレベルはどれですか?

4

1 に答える 1

16

'デフォルト'はありません。粒度(行、ページ、(パーティション|オブジェクト))は、オブジェクトの許可されたオプション(allow_page_locks / allow_row_locks)、操作インテントに関する情報(プローブ、スキャン、挿入)、行セットの推定サイズ、および他の要因の数(分離レベル、ファイルグループは読み取り専用など)。ほとんどの場合、シングルトン操作の場合は行レベルの粒度、スキャンの場合はページレベルの粒度が得られます。投稿したクエリはスキャンであるため、おそらくページレベルの粒度で処理されます。

于 2012-12-18T14:09:43.510 に答える