【SQL Server】インデックスの断片化率を確認する

SQLで
 ・インデックスの断片化率を確認
できます!

断片化率は
 ・sys.dm_db_index_physical_stats
により確認できます!

PR

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
PR

実行結果

インデックスの断片化率を確認できました。

実行結果
実行結果
PR

参考

上記で使用した以下の詳細は、公式サイトをご確認ください。

●sys.dm_db_index_physical_stats


●sys.objects


●sys.indexes


●sys.schemas

タイトルとURLをコピーしました