SQL Server の Locks オブジェクト

適用対象: SQL Server

Microsoft SQL Server の SQLServer:Locks オブジェクトは、各リソースの種類に対する SQL Server ロックに関する情報を提供します。 ロックは、複数のトランザクションで同じ SQL Server リソースが同時に使用されるのを防ぐために、トランザクション中に読み取られたり変更されたりする行などにかけられます。 たとえば、あるトランザクションによってテーブルの行に排他 (X) ロックがかけられると、他のトランザクションはロックが解除されるまでその行を変更できません。 ロックを最小限にとどめるとコンカレンシーが向上し、パフォーマンスが向上します。 異なる種類のリソースのロックを表す複数の Locks オブジェクトのインスタンスを同時に監視することができます。

次の表では、SQL Server Locks カウンターについて説明します。

SQL Server:Locks カウンター 説明
Average Wait Time (ms) 待つ必要がある各ロック要求の平均待ち時間 (ミリ秒)。
Average Wait Time Base 内部使用のみ。
Lock Requests/sec ロック マネージャーから 1 秒あたりに要求された新しいロックと、ロック変換の数。
Lock Timeouts (timeout > 0)/sec NOWAIT ロックの要求を除く、1 秒あたりにタイムアウトしたロック要求の数。
Lock Timeouts/sec NOWAIT ロックの要求を含めた、1 秒あたりにタイムアウトしたロック要求の数。
Lock Wait Time (ms) 最後の 1 秒間のロックの総待機時間 (ミリ秒)。
Lock Waits/sec 呼び出し元が待つ必要のあった 1 秒あたりのロック要求の数。
Number of Deadlocks/sec デッドロックが発生した 1 秒あたりのロック要求の数。

QL Server では、以下のリソースをロックできます。

アイテム 説明
_Total すべてのロックに関する情報。
AllocUnit アロケーション ユニットのロック。
Application アプリケーションで指定されているリソースのロック。
データベース データベース内のすべてのオブジェクトを含むデータベースのロック。
Extent 連続した 8 ページのグループのロック。
ファイル データベース ファイルのロック。
ヒープ/B ツリー ヒープまたは B ツリー。 データ ページのヒープまたはインデックスの B ツリー構造のロック。
Key インデックスの行のロック。
Metadata カタログ情報 (メタデータ) のロック。
Object すべてのデータとインデックスを含む、テーブル、ストアド プロシージャ、ビューなどのロック。 オブジェクトには、 sys.all_objectsにエントリを含む任意のオブジェクトを指定できます。
OIB オンライン インデックス ビルド LOB 追跡テーブルを特に対象とした、オンライン インデックス ビルド ロックのロック リソース。
ページ データベース内の 8 KB のページのロック。
RID 行 ID。 ヒープ内の単一行のロック。
RowGroup 列ストア インデックスの行グループのロック リソース。
Xact トランザクションのロック リソース。

Note

ドキュメントでは、一般的にインデックスを参照して B ツリーという用語を使用します。 行ストア インデックスでは、データベース エンジンは B+ ツリーを実装します。 これは、メモリ最適化テーブルの列ストア インデックスまたはインデックスには適用されません。 詳細については、「SQL Server と Azure SQL のインデックスのアーキテクチャとデザイン ガイド」を参照してください。

sys.dm_os_performance_counters の動的管理ビューで次の T-SQL クエリを使用して、このオブジェクトのクエリ パフォーマンス カウンターの確認を開始します。

SELECT * FROM sys.dm_os_performance_counters
WHERE object_name LIKE '%Locks%';