表重建后SQL查询性能很慢,但在EXEC sp_updatestats之后很快

时间:2015-05-29 08:57:38

标签: sql sql-server sql-server-2008 indexing statistics

我遇到问题,我的查询运行时间太长。 经过调查,我发现桌子没有维护。重新索引没有在很长一段时间内完成,所有相关表格的索引碎片都超过了90%。

所以我重新编制了表格,但我的查询仍然需要很长时间。

然后我手动运行EXEC sp_updatestats 在此之后我的查询运行得非常快。

我的印象是Reindex应该自动计算整个表的统计数据,并且手动运行更新统计数据只会使事情变得更糟,因为它会根据数据样本而不是整个表更新统计数据。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

取决于列中数据的分布。查找更新统计信息 - 您将发现可以指定运行它时要使用的选择性。默认采样级别取决于数据的大小。

大多数人在维护计划的索引工作后运行更新统计信息。