还有其他一些类似的问题但是,请不要混淆。
我知道有一个函数STATS_DATE()
来知道更新的统计信息的位置,这很好,但我想知道的是触发更新此统计信息或截止的内容。
我知道这也是一份报告。
但是上周我在某个服务器上看到了统计信息,他们给了我非常好的信息,这个特定数据库中的主表有4位数字。
现在正在查看相同的生产服务器和返回的STATS_UPDATE
函数,它们在上周六更新了,但是这台服务器已经运行了数周而没有重启,甚至没有服务重启。所以我知道我正在看这个星期一早上基本积累的统计数据。
所以,我想知道在哪里可以设置此设置,以便服务器不断累积索引使用情况统计信息,直到我清除日志或其使用的任何存储空间。
答案 0 :(得分:2)
SQL Server为表和索引维护了各种“统计信息”。
直方图统计。这是查询优化器使用的统计信息。 STATS_DATE()返回这些更新的最后日期/时间。自动更新直方图统计数据的标准是500行+表的20%。所以一个包含100,000行的表,你必须在触发重新计算这些行之前更新20,500行。您无法更改自动统计信息更新的阈值,但是,您可以关闭自动统计信息更新和/或手动更新特定表和索引的统计信息。
使用情况统计信息:可在sys.dm_db_index_usage_stats中找到。索引使用情况统计信息可跟踪SELECT查询中的搜索和扫描等内容。它们不会持久化并在重新启动sql server时重置。如果基础索引重建为“ALTER INDEX ... REBUILD”,而不是“ALTER INDEX ... REORG”,则会重置这些统计信息
操作统计信息:可在sys.dm_db_index_operational_stats中找到。操作统计信息包括页面拆分,叶级插入和PAGEIOLATCH延迟。这些也是非持久性的。