ITPub博客

首页 > 数据库 > SQL Server > Sqlserver关于统计信息自动创建自动更新的知识点

Sqlserver关于统计信息自动创建自动更新的知识点

原创 SQL Server 作者:lusklusklusk 时间:2020-06-22 17:41:35 0 删除 编辑

官方文档https://docs.microsoft.com/zh-cn/sql/relational-databases/statistics/statistics?view=sql-server-ver15

SSMS右键数据库--Properties--Options--Automatic下面会出现和统计信息相关的几个选项,和sys.databases视图的is_auto_create_stats_on,is_auto_create_stats_incremental_on,is_auto_update_stats_on,is_auto_update_stats_async_on这几个字段一一对应




AUTO_CREATE_STATISTICS
在自动创建统计信息选项 AUTO_CREATE_STATISTICS 为 ON 时,查询优化器将根据需要在查询谓词中的单独列上创建统计信息,以便改进查询计划的基数估计。这些单列统计信息在现有统计信息对象中尚未具有直方图的列上创建。 AUTO_CREATE_STATISTICS 选项不确定是否为索引创建了统计信息。 此选项也不生成筛选统计信息。 它严格应用于全表的单列统计信息。
查询优化器通过使用 AUTO_CREATE_STATISTICS 选项创建统计信息时,统计信息名称以 _WA 开头。 可以使用下面的查询来确定查询优化器是否为查询谓词列创建了统计信息。
SELECT OBJECT_NAME(s.object_id) AS object_name,  
    COL_NAME(sc.object_id, sc.column_id) AS column_name,  
    s.name AS statistics_name  
FROM sys.stats AS s
INNER JOIN sys.stats_columns AS sc  
    ON s.stats_id = sc.stats_id AND s.object_id = sc.object_id  
WHERE s.name like '_WA%'  
ORDER BY s.name;  



AUTO_UPDATE_STATISTICS
在自动更新统计信息选项 AUTO_UPDATE_STATISTICS 为 ON 时,查询优化器将确定统计信息何时可能过期,查询优化器通过计算自最后统计信息更新后数据修改的次数并且将这一修改次数与某一阈值进行比较,确定统计信息何时可能过期。 该阈值基于表中或索引视图中的行数。

   SQL Server 2014 (12.x),SQL Server 基于更改行的百分比使用阈值。 这与表中的行数无关。 阈值是:
        如果在评估时间统计信息时表基数为 500 或更低,则每达到 500 次修改时更新一次。
        如果在评估时间统计信息时表基数大于 500,则每达到 500 + 修改次数的百分之二十时更新一次。

   SQL Server 2016 (13.x) 开始,如果数据库兼容性级别为 130,SQL Server 将使用递减的动态统计信息更新阈值,此阈值将根据表中的行数进行调整。 它的计算方式为 1000 与当前的表基数乘积的平方根。 例如,如果表中包含 200 万行,则计算为 sqrt (1000 * 2000000) = 44721.359。 进行此更改后,将会更频繁地更新大型表的统计信息。 但是,如果数据库的兼容性级别低于 130,则适用 SQL Server 2014 (12.x) 阈值。



AUTO_UPDATE_STATISTICS_ASYNC
异步统计信息更新选项 AUTO_UPDATE_STATISTICS_ASYNC 将确定查询优化器是使用同步统计信息更新还是异步统计信息更新。 默认情况下,异步统计信息更新选项为 OFF 状态,并且查询优化器以同步方式更新统计信息。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30126024/viewspace-2700008/,如需转载,请注明出处,否则将追究法律责任。

全部评论
Welcome to Lukes DB HOME。 Oracle OCM、Mysql OCP, 8年以上DBA工作经验,目前任职一家美企海外DBA团队Leader,博客仅记录自己的一个学习过程,不代表完全准确,如有需要,欢迎转载。

注册时间:2015-02-02

  • 博文量
    403
  • 访问量
    645048