あまり使用されないインデックス順に表示(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
  , s.user_seeks    -- Index Seek 数
  , s.user_scans    -- Index Scan 数
  , s.user_updates  -- UPDATE 数
FROM
sys.objects o
 INNER JOIN sys.indexes i
   ON o.object_id = i.object_id
 INNER JOIN sys.dm_db_index_usage_stats s 
   ON i.index_id = s.index_id
WHERE o.type = 'U'
 AND database_id = DB_ID()
 AND s.object_id = OBJECT_ID('テーブル名')
ORDER BY
 s.user_seeks+s.user_scans+s.user_updates