【发布时间】:2013-09-13 18:02:55
【问题描述】:
我有一个表,它有 20 亿多行和跨 8 个分区的 7 个索引,只有标准 SQL Server AUTOUPDATE 来维护统计信息,它只很少更新统计信息。每晚大约有 130 万条记录添加到此表中。显然,这不是有意义的行为,但由于这是一个生产服务器,我非常警惕在不知道性能成本的情况下点击更新。我在任何测试环境中都没有完整的表格。 (这张桌子是最糟糕的,还有其他的几乎一样糟糕。)
在确定与定期更新统计信息相关的性能成本时,我应该关注哪些方面/什么?
应该多久更新一次统计信息?应该使用FULLSCAN 吗?
编辑
我认为 traceflag 2371 对我来说是一个危险的工具,因为它可以在我需要一切启动和运行的白天触发自己的更新,而不是我控制的窗口。
在做了相当多的研究之后,我认为这个问题已经发展到包括是否使用sp_updatestats(这似乎是一个大锤,因为如果>1 行已更新Erin Stellato,它会更新统计信息)或UPDATE STATISTICS如果UPDATE STATISTICS 那么那么大的桌子上的百分比是多少。 10 亿行的 10% 样本大约需要 2 小时才能完成。
如果 PK 的相关部分是一个升序的日期时间列。
结束编辑
【问题讨论】:
标签: sql-server tsql sql-server-2012