--第1步:查找碎片大于某个阈值的索引(此处阈值90)
SELECT OBJECT_NAME(ind.OBJECT_ID) AS TableName,
ind.name AS IndexName,
indexstats.index_type_desc AS IndexType,
indexstats.avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, NULL) indexstats
INNER JOIN sys.indexes ind ON ind.object_id = indexstats.object_id AND ind.index_id = indexstats.index_id
WHERE indexstats.avg_fragmentation_in_percent > 90
ORDER BY indexstats.avg_fragmentation_in_percent DESC
运行结果
--第2步:重新组织索引(把第1步里的表名TableName复制进来,并调整阈值)
ALTER INDEX ALL ON [TableName]
REBUILD WITH (FILLFACTOR = 90, SORT_IN_TEMPDB = ON,STATISTICS_NORECOMPUTE = ON);