【问题标题】:SQL Server slow index after timeSQL Server 缓慢索引后的时间
【发布时间】:2014-06-26 18:05:49
【问题描述】:

我的数据库的一个索引具有随着时间的推移变慢的奇怪行为。

即使我的维护计划包括对所有用户数据库的“重建索引”步骤。过了一会儿,它变得如此缓慢,以至于我的整个应用程序/服务器网格都停止了。

但是当我对特定索引进行手动重建时,查询时间会从几分钟缩短到半秒。

为什么维护计划的“重建索引”步骤似乎跳过了这个索引,为什么它是手动工作的? (维护计划每天晚上正确运行,没有错误)

【问题讨论】:

  • 维护作业运行什么代码来重建所有数据库的索引?
  • 您是否在系统上运行过跟踪?检查错误日志?
  • ALTER INDEX [NonClusteredIndex-20140414-121115] ON [dbo].[Product] REBUILD PARTITION = ALL WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON , ALLOW_PAGE_LOCKS = ON) 至少维护计划设计者是这么告诉我的。

标签: sql sql-server indexing maintenance-plan


【解决方案1】:

碎片可以在索引方面产生很大的影响。您可能需要完全删除索引并重新创建它们。

【讨论】:

  • 如果我在索引慢的时候检查索引的碎片,它实际上是 0(0.86%,它是一个非常静态的表)。
  • 有什么样的索引?如果它是列存储并且服务器真的很忙,那么它可能是 IO。您是否使用任何 INCLUDES 索引?您能否发布带有索引的表结构?看到它可能会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2011-01-26
  • 2021-04-19
  • 1970-01-01
  • 1970-01-01
  • 2011-03-28
  • 1970-01-01
  • 2020-12-17
  • 1970-01-01
相关资源
最近更新 更多