- 当表中索引的碎片的比例大于 > 30%,建议使用 REBUILD(重建),其它情况建议 REORGANIZE(重组)。
- 查看当前某个表的索引的碎片百分比:
SELECT a.index_id, name, avg_fragmentation_in_percent
FROM sys.dm_db_index_physical_stats (DB_ID(), OBJECT_ID(N'表名'),
NULL, NULL, NULL) AS a
JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id;
GO
- 重建某个表的所有索引,同时可以指定填充因子:
ALTER INDEX ALL ON 表名
REBUILD WITH (FILLFACTOR = 80, SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = ON);
- 重建某个表的某个特定的索引,同时可以指定填充因子:
ALTER INDEX 索引名称 ON 表名
REBUILD WITH (FILLFACTOR = 80, SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = ON);
- 重组索引
ALTER INDEX 索引名称 ON 表名
REORGANIZE ;