SQL Server 断片化されたindexの一覧をクエリで取得する

SQL Server 断片化されたindexの一覧をクエリで取得する

SQL Serverで断片化されたindexの一覧をクエリで取得する手順を記述してます。

環境

  • OS windows10 pro
  • SQL server2017 Version 14.0.3223.3
  • SSMS 18.7.1

一覧を取得

以下のクエリを実行します。

SELECT a.index_id, b.name as indexname, c.name as tablename, avg_fragmentation_in_percent  
FROM sys.dm_db_index_physical_stats (DB_ID(N'DbName'), NULL, NULL, NULL, NULL) AS a  
    JOIN sys.indexes AS b 
      ON a.object_id = b.object_id AND a.index_id = b.index_id
	JOIN sys.objects AS c
      ON a.object_id = c.object_id
WHERE avg_fragmentation_in_percent > 30
ORDER BY avg_fragmentation_in_percent DESC;
GO  

断片化されたindexを確認することができます。