sys.dm_db_index_usage_stats
さまざまな種類のインデックス操作の数と、各種の操作が前回実行された時刻を返します。
列名 | データ型 | 説明 |
---|---|---|
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 権限が必要です。詳細については、「動的管理ビューと動的管理関数」を参照してください。
参照
関連項目
動的管理ビューと動的管理関数
インデックス関連の動的管理ビューおよび関数
sys.dm_db_index_physical_stats
sys.dm_db_index_operational_stats
sys.indexes (Transact-SQL)
sys.objects (Transact-SQL)
その他の技術情報
インデックスの設計の全般的なガイドライン
パフォーマンスの監視とチューニング