我刚刚了解到,我工作的一家客户端公司已经决定关闭一些SQL服务器的自动更新统计信息选项,并在出现性能问题时由DBA手动排除故障。
然而,这种做法对我来说毫无意义。为什么要阻止更新统计数据?
发布于 2011-12-03 09:40:12
我的建议是:
sp_updatestats将为您更新数据库中所有表的所有状态,但这也会导致存储的proc重新编译,因此仔细选择您的时间(也就是说,在月底报告之前的sp_updatestats可能不是最优的)。需要运行索引维护/重新生成统计数据的频率取决于数据库负载,特别是数据被修改的频率(即INSERT/UPDATE/DELETE). )。如果您正在修改整个显示中的数据(即每周批处理的暂存表),您可能希望每晚更新stats/reorganize。如果您的数据比较静态,您可能可以将其安排为每周或每两周一次。
发布于 2011-12-02 21:02:22
我只在一个糟糕的应用程序中见过一次,它的索引堆很糟糕,ETL也很重。
这是垃圾,幸运的不是我的。
否则,就没有理由了。
如果您在不适当的时间获得统计信息更新,那么这意味着您正在进行不正确的索引/统计维护,或者有大量的删除/加载达到阈值。
使用Server 2005+,您可以推迟统计数据的更新。
请参阅“何时使用同步或异步统计更新”
我很想看看他们写了些什么或者读过什么来做这个选择.
发布于 2011-12-02 21:45:40
我唯一一次关闭自动统计是当我使用一些没有文档的命令来创建一些假的统计数据,而我不希望系统在加载数据时被清除掉。这是个非常棘手的案子。
https://dba.stackexchange.com/questions/8708
复制相似问题