در 2005 و 2008 و Denali مي تواني با استفاده DMV ها وضعيت Fragmentation را بررسي كني
نمونه DMV
SELECT DB_NAME(DPS.DATABASE_ID) AS [DatabaseName] ,OBJECT_NAME(DPS.OBJECT_ID) AS TableName ,SI.NAME AS IndexName ,DPS.INDEX_TYPE_DESC AS IndexType ,DPS.AVG_FRAGMENTATION_IN_PERCENT AS AvgPageFragmentation ,DPS.PAGE_COUNT AS PageCounts FROM sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, NULL) DPS --N'LIMITED') DPS INNER JOIN sysindexes SI ON DPS.OBJECT_ID = SI.ID AND DPS.INDEX_ID = SI.INDID ORDER BY DPS.avg_fragmentation_in_percent DESC
---------------
جهت رفع Fragmentation در بعضي از مواقع بايد Rebuildو در برخي Reorganize بايد انجام داد
اصولا Rebuild زمان زيادي را به خود تخصيص مي دهد چون ساختار ايندكس از نوع ساخته مي شود
ولي در Reorganize اينگونه نمي باشد بررسي اين موضوع خود نيازمند Topic جداگانه است
1. sp_MSforeachtable 'ALTER INDEX ALL ON ? REORGANIZE'
2. sp_MSforeachtable 'ALTER INDEX ALL ON ? REBUILD WHILE (ONLINE=ON)'
3. sp_MSforeachtable 'ALTER INDEX ALL ON ? REBUILD
-------
Exec sp_MSForEachtable 'ALTER INDEX ALL ON ? REBUILD;