我们有一个SQL Server 2012实例,数据库的自动状态设置为ON:
但后来我运行了一个查询来查看一些统计信息,并且某些尚未及时更新:
谢谢!
答案 0 :(得分:3)
即使您将自动更新统计信息设置为true,它们也只会在达到阈值时更新..这对于不同版本是不同的
SQL Server 2012或更早版本的阈值:
表格大小从0变为> 0行
收集统计信息时表中的行数为500或更少,统计对象的前导列的colmodctr自那时起已更改500以上
收集统计信息时,该表有超过500行,统计对象的前导列的colmodctr在统计信息时已更改超过表中行数的500 + 20%聚集
对于SQLServer 2016,使用新算法进行的主要更改和SQL更新统计信息很少(读取比旧版本更频繁)
我需要关心吗?我怎么知道我是否需要更新它们,或者它们是否会导致性能问题?
通常人们会在周末安排维护工作,这包括索引重建/统计更新..
这通常应该处理大多数数据库。在您的情况下,如果您因为统计信息无效而看到性能问题,您可以手动更新它们。我们每周都会更新一次,但是sites like StackOverflow does it more often
update stats tablename
进一步阅读/参考:
Statistics Used by the Query Optimizer in Microsoft SQL Server 2008
Understanding When Statistics Will Automatically Update