如何更新统计信息

在更新统计信息之前,先说一下什么是统计信息,有什么作用。


统计信息其实就是表中的记录数、字段个数、每行数据占用字节数、某个字段中每一种值的个数等。


在一个sql通过语法检查、语义检查、权限检查后,sql优化器会用统计信息,来优化sql,生成多个执行计划,计算每个执行计划的cost(预估的),看哪个最小,就选择这个执行计划,接下来按照这个plan执行sql。

所以,如果统计信息不够准确,就会导致sql优化器误判,产生的执行计划不够最优,或者生产的cost不准确,最后反而选择了实际成本更高的,导致性能很差。


(1)那么,如何更新统计信息呢?

其实更新统计信息的语句特别简单:update statistics  表名

sql server会按照一定的百分比,扫描表中的数据,更新统计信息,而不会扫描整个表的所有数据。


(2)更新统计信息对系统有什么影响?

更新统计信息时,会对表加只读锁,所以会阻塞对表的修改操作。

不过,由于扫描数据的百分比很小,这个锁定过程持续的时间会很短,所以影响不大。


另外,更新统计信息后,会导致相关表的执行计划无效,之前编译缓存的存储过程如果再次执行,会被重新编译。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值