gpt4 book ai didi

statistics - SQL Server Index Usage Stats 多久更新一次,是什么触发了它?

转载 作者:行者123 更新时间:2023-12-03 16:54:44 27 4
gpt4 key购买 nike

还有一些其他类似的问题,但请不要混淆。

我知道有一个函数 STATS_DATE() 可以知道在哪里更新了统计数据,这很好,但是我想知道是什么触发了这个统计数据的更新,或者是一个截止.我知道也有这方面的报告。

但上周我在某个服务器上看到了统计数据,它们给了我非常好的信息,其中包含该特定数据库中主表的 4 位数。

现在查看同一台生产服务器,STATS_UPDATE 函数返回它们已于上周六更新,但该服务器已经运行数周而没有重新启动,甚至没有重新启动服务。所以我知道我正在查看基本上是这个星期一早上积累的统计数据。

所以,我想知道在哪里可以设置此设置,以便服务器不断累积索引使用统计信息,直到我清除日志或它使用的任何存储。

最佳答案

SQL Server 为表和索引维护了各种“统计信息”。

  1. 直方图统计。这些是查询优化器使用的统计信息。 STATS_DATE() 返回这些更新的最后日期/时间。直方图统计自动更新的标准是 500 行 + 表的 20%。因此,对于一个包含 100,000 行的表,您必须更新 20,500 行才能触发这些行的重新计算。您无法更改自动统计信息更新的阈值,但是,您可以关闭自动统计信息更新和/或手动更新特定表和索引的统计信息。

  2. 使用情况统计信息:可在 sys.dm_db_index_usage_stats 中找到。索引使用统计信息会跟踪诸如从 SELECT 查询中查找和扫描之类的事情。它们不会持久化,并会在 sql server 重启时重置。如果重建基础索引“ALTER INDEX ... REBUILD”,但使用“ALTER INDEX ... REORG”则不会重置这些统计信息

  3. 操作统计:这些可以在 sys.dm_db_index_operational_stats 中找到。操作统计信息包括页面拆分、叶级插入和 PAGEIOLATCH 延迟等内容。这些也不是持久的。

关于statistics - SQL Server Index Usage Stats 多久更新一次,是什么触发了它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13689186/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com