SQLで
・インデックスの断片化率を確認
できます!
断片化率は
・sys.dm_db_index_physical_stats
により確認できます!
SQL
ここでは断片化率を含め
・スキーマ名
・テーブル名
・インデックス名
・断片化率
・更新日時
を取得します。
※ここでの更新日時は「直近でインデックス最適化が実施された日時」です。
※また今回は断片化率でソートします。
SELECT
S.name AS 'スキーマ名',
O.name AS 'テーブル名',
IDX.name AS 'インデックス名',
IDXPS.avg_fragmentation_in_percent AS '断片化率',
O.modify_date AS '更新日時'
FROM sys.dm_db_index_physical_stats (DB_ID(),null,null,null,null) AS IDXPS
LEFT OUTER JOIN sys.objects AS O
ON IDXPS.object_id = O.object_id
LEFT OUTER JOIN sys.schemas AS S
ON O.schema_id = S.schema_id
LEFT OUTER JOIN sys.indexes AS IDX
ON IDXPS.object_id = IDX.object_id AND
IDXPS.index_id = IDX.index_id
WHERE
O.type = 'U' AND
IDX.index_id > 0
ORDER BY
IDXPS.avg_fragmentation_in_percent DESC
実行結果
インデックスの断片化率を確認できました。
参考
上記で使用した以下の詳細は、公式サイトをご確認ください。
●sys.dm_db_index_physical_stats
●sys.objects
●sys.indexes
●sys.schemas