如何监控更新表的统计信息的成本?

时间:2013-09-13 18:02:55

标签: sql-server tsql sql-server-2012

我有一个表,在8个分区中有20亿个行和7个索引,只有标准的SQL Server AUTOUPDATE来维护统计信息,这只会很少更新统计信息。每晚大约有130万条记录被添加到此表中。显然,这不是有意义的行为,但由于这是一个生产服务器,我非常警惕只是在不知道性能成本的情况下进行更新。我没有在任何测试环境中使用完整的表。 (这张桌子是最糟糕的罪犯,还有其他人几乎一样糟糕。)

在确定与定期更新统计数据相关的绩效成本时,我应该在哪里/看什么?

统计数据应该多久更新一次?应该FULLSCAN使用吗?

修改

我认为traceflag 2371对我来说是一个危险的工具,因为它可以触发自己的更新,当我需要一切正常运行而不是我控制的窗口时。

经过相当多的研究后,我认为这个问题已经发展到包括是否使用sp_updatestats(这似乎是一个大锤,因为如果> 1行已经更新,它会更新统计数据Erin Stellato )或UPDATE STATISTICS以及UPDATE STATISTICS那么表上的百分比是多少。 10亿行的10%样本需要大约2个小时才能完成。

如果相关部分PK是升序日期时间列。

结束编辑

1 个答案:

答案 0 :(得分:1)

如果您使用的是SQL Server 2008 R2 SP1或更高版本,请尝试使用跟踪标志2371.它会降低更新阈值。 http://blogs.msdn.com/b/saponsqlserver/archive/2011/09/13/10207658.aspx