sys.dm_db_missing_index_details (Transact-SQL)
空間インデックスを除く、欠落インデックスに関する詳細情報を返します。
列名 |
データ型 |
説明 |
---|---|---|
index_handle |
int |
特定の欠落インデックスの識別子。 識別子はサーバー内で一意です。 index_handle はこのテーブルのキーです。 |
database_id |
smallint |
欠落インデックスを含むテーブルがあるデータベースの識別子。 |
object_id |
int |
インデックスが欠落しているテーブルの識別子。 |
equality_columns |
nvarchar(4000) |
次の形式の等値述語に使用できる列のコンマ区切り一覧。 table.column =constant_value |
inequality_columns |
nvarchar(4000) |
次の形式のような不等値述語に使用できる列のコンマ区切り一覧。 table.column > constant_value "=" 以外の比較演算子はすべて、不等値を表します。 |
included_columns |
nvarchar(4000) |
クエリの包括列として必要な列のコンマ区切り一覧。 包括列または付加列の詳細については、「付加列インデックスの作成」を参照してください。 |
statement |
nvarchar(4000) |
インデックスが欠落しているテーブルの名前。 |
説明
sys.dm_db_missing_index_details によって返される情報は、クエリ オプティマイザーでクエリが最適化されるときに更新されますが、保存されません。 欠落インデックスの情報が保持されるのは、SQL Server の再起動までです。 欠落インデックスの情報を、サーバーの再利用後も保持する場合は、データベース管理者が情報のバックアップ コピーを定期的に作成する必要があります。
特定の欠落インデックスが属する欠落インデックス グループを特定するには、sys.dm_db_missing_index_groups 動的管理ビューをクエリできます。これには、index_handle 列を基準に、このビューを sys.dm_db_missing_index_details と等結合します。
CREATE INDEX ステートメントでの欠落インデックス情報の使用
sys.dm_db_missing_index_details で返される情報を CREATE INDEX ステートメントに変換するには、等値列を不等値列の前に指定し、これらを合わせてインデックスのキーにする必要があります。 付加列は、INCLUDE 句を使用して CREATE INDEX ステートメントに追加します。 等値の列の有効な順序を決定するには、選択度の最も高い列を左の先頭に指定し、選択度が高い順に並べます。
トランザクションの一貫性
トランザクションでテーブルを作成または削除する場合、削除されたオブジェクトに関する欠落インデックス情報を含む行は、トランザクションの一貫性を保持するためこの動的管理オブジェクトから削除されます。
権限
この動的管理ビューをクエリするには、VIEW SERVER STATE 権限、または VIEW SERVER STATE が暗黙的に与えられる権限が許可されている必要があります。
関連項目
参照
sys.dm_db_missing_index_columns (Transact-SQL)