空間インデックス以外のインデックスが欠落しているデータベース テーブル列に関する情報を返します。 sys.dm_db_missing_index_columns は動的管理関数です。
構文
sys.dm_db_missing_index_columns(index_handle)
引数
index_handle
欠落インデックスを一意に識別する整数値です。 次の動的管理オブジェクトから取得できます。
返されるテーブル
列名 |
データ型 |
説明 |
||||||||
|---|---|---|---|---|---|---|---|---|---|---|
column_id |
int |
列の ID です。 |
||||||||
column_name |
sysname |
テーブル列の名前。 |
||||||||
column_usage |
varchar(20) |
クエリでの列の使用方法。 次の値をとります。
|
説明
sys.dm_db_missing_index_columns によって返される情報は、クエリ オプティマイザーでクエリが最適化されるときに更新されますが、保存されません。 欠落インデックスの情報が保持されるのは、SQL Server の再起動までです。 欠落インデックスの情報を、サーバーの再利用後も保持する場合は、データベース管理者が情報のバックアップ コピーを定期的に作成する必要があります。
トランザクションの一貫性
トランザクションでテーブルを作成または削除する場合、削除されたオブジェクトに関する欠落インデックス情報を含む行は、トランザクションの一貫性を保持するためこの動的管理オブジェクトから削除されます。
権限
この動的管理関数をクエリするには、VIEW SERVER STATE 権限、または VIEW SERVER STATE が暗黙的に与えられる権限が許可されている必要があります。
使用例
次の例では、Address テーブルに対してクエリを実行した後、sys.dm_db_missing_index_columns 動的管理ビューを使用してクエリを実行し、インデックスが欠落しているテーブル列を返します。
USE AdventureWorks2012;
GO
SELECT City, StateProvinceID, PostalCode
FROM Person.Address
WHERE StateProvinceID = 9;
GO
SELECT mig.*, statement AS table_name,
column_id, column_name, column_usage
FROM sys.dm_db_missing_index_details AS mid
CROSS APPLY sys.dm_db_missing_index_columns (mid.index_handle)
INNER JOIN sys.dm_db_missing_index_groups AS mig ON mig.index_handle = mid.index_handle
ORDER BY mig.index_group_handle, mig.index_handle, column_id;
GO
関連項目
参照
sys.dm_db_missing_index_details (Transact-SQL)