server sql 统计信息 过时_SQL Server统计信息更新时采样百分比对数据预估准确性的影响详解...

本文探讨了SQL Server统计信息更新时采样百分比如何影响数据预估的准确性。文章通过实际案例分析,指出默认的低采样密度可能导致预估误差,而提高采样密度能提升准确性。但同时也警告,对于大表,100%采样可能导致高昂的资源消耗。因此,选择合适的采样密度是关键,需要在准确性与执行成本间找到平衡。
摘要由CSDN通过智能技术生成

为什么要写统计信息

最近看到园子里有人写统计信息,楼主也来凑热闹。

话说经常做数据库的,尤其是做开发的或者优化的,统计信息造成的性能问题应该说是司空见惯。

当然解决办法也并非一成不变,“一招鲜吃遍天”的做法已经行不通了(题外话:整个时代不都是这样子吗)

当然,还是那句话,既然写了就不能太俗套,写点不一样的,本文通过分析一个类似实际案例来解读统计信息的更新的相关问题。

对于实际问题,不但要解决问题,更重要的是要从理论上深入分析,才能更好地驾驭数据库。

何时更新统计信息

(1)查询执行缓慢,或者查询语句突然执行缓慢。这种场景很可能是由于统计信息没有及时更新而遭遇了参数嗅探的问题。

(2)当大量数据更新(INSERT/DELETE/UPDATE)到升序或者降序的列时,这种情况下,统计信息直方图可能没有及时更新。

(3)建议在除索引维护(当你重建、整理碎片或者重组索引时,数据分布不会改变)外的维护工作之后更新统计信息。

(4)数据库的数据更改频繁,建议最低限度每天更新一次统计信息。数据仓库可以适当降低更新统计信息的频率。

(5)当执行计划出现统计信息缺失警告时,需要手动建立统计信息

统计信息基础

首先说一个老掉牙的话题,统计信息的更新阈值:

1,表格从没有数据变成有大于等于1条数据。

2,对于数据量小于500行的表格,当统计信息的第一个字段数据累计变化量大于500以后。

3,对于数据量大于500行的表格,当统计信息的第一个字段数据累计变化量大于500 + (20%×表格数据总量)以后。

9e525fd708f2a191971ce5ee9ba07ecd.png

做个查询,触发统计信息更新,rowmodct归0(继续累积直到下一个触发的阈值,触发更新之后再次归0)

858f287a55fdbe3ea744a6e301719379.png

关于统计信息“过期”的问题

下面开始正文,网络上很多关于统计信息的文章,提到统计信息,很多都是统计信息过期的问题,然后跟新之后怎么怎么样

尤其在触发统计信息自动更新阈值的第三个区间:也

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值