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 に初期設定されます。