MSSQL服务器:重build与重组索引和更新统计信息

我们有一个很慢的数据库(MS SQL SERVER)。 现在我们知道,索引从来没有重build或重组。 (目前还不清楚这是否真的是问题,但我们现在要经常这样做。)

但现在的问题是:重build指数还是更好一些? 目前我们有超过90%的碎片,所以我做了重build。 但是,如果我想经常这样做,碎片通常会更低。 那么重新组织它而不是重build会更有意义吗? 你真的会在每个MS SQL Server上毫无例外地为此做出一个频繁的任务吗? 在所有MS SQL服务器上是否有意义?

有没有build议这个任务应该运行? 一个星期一次? 每月一次?

我也在博客中看到,在重build/重组之后,他们也是“更新统计”。 这是推荐还是废话? (我在博客上都find了 – >一个说:是的 – >其他:废话!)

你有什么经验? 这些任务(重build/重组/统计)是否需要大量的性能?

许多问题! 抱歉!

有大量的信息可以回答这些问题。 答案是:这取决于。 定期进行索引维护和统计更新至关重要,这是非常确定的。 不过,你必须根据你的环境做一些研究和调整,以及如何做。

作为一个好的开始,阅读这些:

  • 重build或重新组织:SQL Server索引维护 (Kendra Little)
  • 更新统计:秘密IO爆炸 (肯德拉小)
  • 指数维护 (Jonathan Kehayias)
  • 是什么原因导致计划出现可怕的错误 – 你应该更新统计数据 (Kimberly Tripp)
  • 了解统计数据何时自动更新 (Erin Stellato)

斯基尔曼说了什么,还有,你可能要考虑使用奥拉·哈伦格的剧本 ,这些剧本只做必要的工作。 您可以在重build或重新组织之前自定义索引中的碎片数量,这样可以减less重新索引中涉及的工作量。

但是,是的。 这取决于你的环境,负载types(主要是select,大部分是插入/更新/删除)等。