sys.dm_db_index_usage_stats (Transact-SQL)

さまざまな種類のインデックス操作の数と、各種の操作が前回実行された時刻を返します。

列名

データ型

説明

database_id

smallint

テーブルまたはビューが定義されているデータベースの ID。

object_id

int

インデックスが定義されているテーブルまたはビューの ID。

index_id

int

インデックスの ID。

user_seeks

bigint

ユーザー クエリによるシーク数。

user_scans

bigint

ユーザー クエリによるスキャン数。

user_lookups

bigint

ユーザー クエリによるブックマーク参照数。

user_updates

bigint

ユーザー クエリによる更新数。

last_user_seek

datetime

前回のユーザー シークの時刻。

last_user_scan

datetime

前回のユーザー スキャンの時刻。

last_user_lookup

datetime

前回のユーザー参照の時刻。

last_user_update

datetime

前回のユーザー更新の時刻。

system_seeks

bigint

システム クエリによるシーク数。

system_scans

bigint

システム クエリによるスキャン数。

system_lookups

bigint

システム クエリによる参照数。

system_updates

bigint

システム クエリによる更新数。

last_system_seek

datetime

前回のシステム シークの時刻。

last_system_scan

datetime

前回のシステム スキャンの時刻。

last_system_lookup

datetime

前回のシステム参照の時刻。

last_system_update

datetime

前回のシステム更新の時刻。

説明

指定したインデックスに対し、1 回のクエリ実行でシーク、スキャン、参照、または更新が行われるたび、その操作はインデックスの使用としてカウントされ、このビュー内の対応するカウンタが 1 増えます。情報は、ユーザーが送信したクエリによる操作と、統計収集のスキャンなど内部生成されたクエリによる操作の両方についてレポートされます。

user_updates カウンタでは、基になるテーブルまたはビューで行われた挿入、更新、または削除操作に基づく、インデックスのメンテナンスのレベルが示されます。このビューを使用して、アプリケーションであまり使用されないインデックスを特定できます。また、メンテナンスのオーバーヘッドの原因になっているインデックスも特定できます。メンテナンスのオーバーヘッドの原因になっており、クエリでほとんどまたはまったく使用されないインデックスが特定できれば、インデックスの削除を検討することもできます。

カウンタは、SQL Server (MSSQLSERVER) サービスが開始されるたびに空に初期化されます。また、AUTO_CLOSE が ON に設定されているなどの理由によりデータベースがデタッチまたはシャットダウンされるときに、そのデータベースに関連付けられたすべての行が削除されます。

インデックスを使用しているときは、そのインデックスにまだ行が存在しない場合に、行が sys.dm_db_index_usage_stats に追加されます。行が追加されるときに、カウンタが 0 に初期設定されます。

権限

VIEW SERVER STATE 権限が必要です。詳細については、「動的管理ビューおよび関数 (Transact-SQL)」を参照してください。