重建与重组

asd*_*fno 4 sql-server maintenance index-tuning

我目前有一个维护计划,每天都会重新组织索引,我想知道如果您每天都重新组织索引,是否需要重建索引?如果是这样,为什么?

Ali*_*ghi 8

这在很大程度上应该是一个谷歌问题,可能会被标记,但我会添加一个答案,以防它对其他人有帮助。请参阅 Brent Ozar 团队的博客文章:http ://www.brentozar.com/archive/2013/09/index-maintenance-sql-server-rebuild-reorganize/

首先:“重组”和“重建”是两个不同的操作,它们各自减少索引中的碎片。他们以不同的方式为同一目的工作。您不需要针对同一个索引运行两者。(我有时会发现人们对维护计划中的每个索引都同时进行。这只是工作量的两倍,而不是乐趣的两倍。)

重建:索引“重建”为索引创建了一个全新的、闪亮的新结构。如果索引被禁用,重建会使它恢复生机。您可以在重建索引时应用新的填充因子。如果中途取消重建操作,它必须回滚(如果它是离线完成的,可能需要一段时间)。

重组:此选项更轻量级。它贯穿索引的叶级,随着它的进行,它会修复页面的物理顺序并压缩页面以应用任何先前设置的填充因子设置。此操作始终在线,如果您取消它,则它可以停在原处(它没有要回滚的巨大操作)。

您是否需要每天重新组织索引?很可能不会,并且您会随着磨损的增加而增加磁盘压力。像 Ola Hallagren 的脚本这样的解决方案经常提供帮助,但请确保您不在工作时间重新索引并考虑数据库大小。

https://ola.hallengren.com/sql-server-index-and-statistics-maintenance.html