通俗易懂SQL server 中的统计信息statistics

一:什么是数据库的统计信息?

在数据库使用中经常会看见这个东西

可以看到有键,约束,触发器,索引,最后这个就是统计信息。

统计信息字面意思就是 统计一下多少数据呗,知道有多少东西,然后去分配空间去用呗。

你如果没有统计信息,里面有几百万条数据你都不知道,你查个东西不跟海底捞针一样,你要是知道有多少条数据,而且还

知道你想要的东西在哪个地方,那你查东西不快都不行。

所以我认为,统计信息就是数据库一个掌控全局的命脉。统计信息的能力越牛皮,使用的效率就越牛皮。

总结一句话:统计信息就是查询优化,查询优化器根据统计信息去寻找最好的执行计划去进行查询。

二:为什么要使用统计信息?

官方一点说:统计信息就是为了协助数据库管理系统的核心组件之一——性能优化器/查询优化器生成合适的执行计划从而尽可能高效地响应请求。

白话:能够知道数据的一个存储环境,也就意味掌控的能力就越强,数据越精确控制能力越强大,面对交互数据库的信息也能得心应手的去处理反馈。也就是说为了使用性能,要用统计信息。

三:统计信息的内容?

既然身为数据库的管家,对于信息所在空间那是一定要了解滴。

表有多少行/页
对于表中的每一列,唯一值的长度信息(最长,最短,平均)、数据值的范围(最大,最小,平均)
表上面的索引信息

这些都要清楚才行。只有清楚了这些内容,然后去分配空间什么的就不会资源浪费了,就像你就小份的饭量,给你大份吃不完不浪费了。

 

内容有三部分:1.头信息 2:密度 3:直方图

具体针对内容的意义以及一些查看语句可以看这篇文章

https://blog.csdn.net/kk185800961/article/details/42806709

https://blog.csdn.net/dba_huangzj/article/details/52859956

三:怎么使用统计信息?

1:系统创建  2:自己创建

系统创建的话有俩种情况:1种是建立索引会生成一个相应的统计信息,2种是查询优化器为查询谓词中的单列创建统计信息

什么是查询谓词:就是一个能够为true或false的表达式,所以本身字段为bit类型的列 系统是不会为他创建统计信息。

 

自己创建就是看使用情景自定义。

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值