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

本文深入解析数据库统计信息的概念,探讨其重要性和作用,包括如何协助查询优化器生成高效执行计划,提升数据库性能。同时,文章详细介绍了统计信息的内容,如表行数、列唯一值信息及索引详情,并讲解了系统自动创建与自定义统计信息的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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

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

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

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

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

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

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

三:统计信息的内容?

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

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

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

 

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

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

https://blog.youkuaiyun.com/kk185800961/article/details/42806709

https://blog.youkuaiyun.com/dba_huangzj/article/details/52859956

三:怎么使用统计信息?

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

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

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

 

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值