DBAtlas · 数据库运维图谱

索引重建/重组

SQL Server维护

命令

-- Rebuild (high fragmentation > 30%). ONLINE requires Enterprise:
ALTER INDEX IX_Customer_Email ON dbo.Customer
  REBUILD WITH (ONLINE = ON, MAXDOP = 4, SORT_IN_TEMPDB = ON);

-- All indexes of a table:
ALTER INDEX ALL ON dbo.Customer REBUILD WITH (FILLFACTOR = 90);

-- Reorganize (moderate fragmentation 5-30%, always online, can be stopped):
ALTER INDEX IX_Customer_Email ON dbo.Customer REORGANIZE;

作用

REBUILD 从头重新创建索引(彻底消除碎片,刷新统计信息);REORGANIZE 就地压缩叶级(轻量、不阻塞)。

适用场景

碎片率 5-30% 时用 REORGANIZE,超过 30% 时用 REBUILD。大表在维护窗口中进行。

注意

ONLINE = ON 仅在 Enterprise/Developer 中可用;Standard 中使用 OFF(表会被锁定)。REBUILD 会生成大量日志并需要空间。MAXDOP 和 SORT_IN_TEMPDB 影响资源使用。

在 DBAtlas 中打开 →

相关内容