未使用インデックスの一覧を取得(dm_db_index_usage_stats)
TechEd 2009 での私のシアターセッション「SQL Server 動的管理ビュー再入門」で紹介した未使用インデックスの一覧を取得できるスクリプトです。DMV(動的管理ビュー)の dm_db_index_usage_stats とシステム カタログ ビューの sys.objects、sys.indexes を利用しています。
USE データベース名 go SELECT o.name AS table_name , i.name AS index_name , * FROM sys.objects o INNER JOIN sys.indexes i ON o.object_id = i.object_id WHERE o.type = 'U' AND i.index_id NOT IN (SELECT s.index_id FROM sys.dm_db_index_usage_stats s WHERE s.object_id = i.object_id AND i.index_id = s.index_id AND database_id = DB_ID() )