重组/重建单个索引与所有表索引

时间:2016-11-16 12:21:40

标签: sql-server

我们计划在我们的应用程序中定期运行索引重建/重组。

我们知道,当索引碎片超过5%时我们应该重新组织,当它超过30%时重建。

我们只是想知道我们是否会重新组织/重建:

  • 仅在表格上分段的特定索引(ALTER INDEX {name} ON ...)
  • 如果至少有一个索引碎片化,则表上的所有索引(ALTER INDEX ALL ON ...)

您认为哪种方法更好?

1 个答案:

答案 0 :(得分:1)

我不知道为什么SQL Server没有为此类操作构建任何内容,但我最近使用Ola Hallengren编写的脚本进行索引维护,我不得不说它是我遇到的最美丽的代码,也是免费的。

这些脚本有一些很酷的功能。

  1. 它与SQL Server 2005,2008,2012,2014及2016的所有版本兼容。

  2. 当碎片低于30%时,它会重新排序索引,否则会重建索引。您还可以通过参数更改此阈值。

  3. 它检查SQL Server许可证,如果是Enterprise,它将在线重建索引,否则它将脱机重建。

  4. 我的意思是列表继续,它绝对值得检查。

    您可以从此处SQL Server Index and Statistics Maintenance" by Ola Hallengren"

    获取脚本