SQL Server索引使用情况统计信息的更新频率是多少?

时间:2012-12-03 18:11:48

标签: statistics sql-server-2012 indexing

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

我知道有一个函数STATS_DATE()来知道更新的统计信息的位置,这很好,但我想知道的是触发更新此统计信息或截止的内容。 我知道这也是一份报告。

但是上周我在某个服务器上看到了统计信息,他们给了我非常好的信息,这个特定数据库中的主表有4位数字。

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

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

1 个答案:

答案 0 :(得分:2)

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延迟。这些也是非持久性的。