位置: 编程技术 - 正文

浅谈SQL Server中统计对于查询的影响分析(sql server的go)

编辑:rootadmin
而每次查询分析器寻找路径时,并不会每一次都去统计索引中包含的行数,值的范围等,而是根据一定条件创建和更新这些信息后保存到数据库中,这也就是所谓的统计信息。 如何查看统计信息 查看SQL Server的统计信息非常简单,使用如下指令: DBCC SHOW_STATISTICS('表名','索引名')所得到的结果如图1所示。

图1.统计信息

统计信息如何影响查询

下面我们通过一个简单的例子来看统计信息是如何影响查询分析器。我建立一个测试表,有两个INT值的列,其中id为自增,ref上建立非聚集索引,插入条数据,从1到,再插入条等于的数据。图1中的统计信息就是示例数据的统计信息。

此时,我where后使用ref值作为查询条件,但是给定不同的值,我们可以看出根据统计信息,查询分析器做出了不同的选择,如图2所示。

图2.根据不同的谓词,查询优化器做了不同的选择

其实,对于查询分析器来说,柱状图对于直接可以确定的谓词非常管用,这些谓词比如:

where date = getdate() where id= where monthly_sales < / where name like “Careyson” + “%”

但是对于比如

where price = @vari where total_sales > (select sum(qty) from sales) where a.id =b.ref_id

where col1 =1 and col2=2

这类在运行时才能知道值的查询,采样步长就明显不是那么好用了。另外,上面第四行如果谓词是两个查询条件,使用采样步长也并不好用。因为无论索引有多少列,采样步长仅仅存储索引的第一列。当柱状图不再好用时,SQL Server使用密度来确定最佳的查询路线。

密度的公式是:1/表中唯一值的 个数。当密度越小时,索引越容易被选中。比如图1中的第二个表,我们可以通过如下公式来计算一下密度:

图3.某一列的密度

根据公式可以推断,当表中的数据量逐渐增大时,密度会越来越小。

对于那些不能根据采样步长做出选择的查询,查询分析器使用密度来估计行数,这个公式为:估计的行数=表中的行数*密度

那么,根据这个公式,如果我做查询时,估计的行数就会为如图4所示的数字。

图4.估计的行数

我们来验证一下这个结论,如图5所示。

图5.估计的行数

因此,可以看出,估计的行数是和实际的行数有出入的,当数据分布均匀时,或者数据量大时,这个误差将会变的非常小。

统计信息的更新

由上面的例子可以看到,查询分析器由于依赖于统计信息进行查询,那么过时的统计信息则可能导致低效率的查询。统计信息既可以由SQL Server来进行管理,也可以手动进行更新,也可以由SQL Server管理更新时手动更新。

当开启了自动更新后,SQL Server监控表中的数据更改,当达到临界值时则会自动更新数据。这个标准是:

向空表插入数据时 少于行的表增加行或者更多 当表中行多于行时,数据的变化量大于%时

上述条件的满足均会导致统计被更新。

当然,我们也可以使用如下语句手动更新统计信息。

UPDATE STATISTICS 表名[索引名]

列级统计信息

SQL Server还可以针对不属于任何索引的列创建统计信息来帮助查询分析器获取”估计的行数“.当我们开启数据库级别的选项“自动创建统计信息”如图6所示。

图6.自动创建统计信息

当这个选项设置为True时,当我们where谓词指定了不在任何索引上的列时,列的统计信息会被创建,但是会有以下两种情况例外:

创建统计信息的成本超过生成查询计划的成本 当SQL Server忙时不会自动生成统计信息

我们可以通过系统视图sys.stats来查看这些统计信息,如图7所示。

图7.通过系统视图查看统计信息

当然,也可以通过如下语句手动创建统计信息:

CREATE STATISTICS 统计名称 ON 表名 (列名 [,...n])

总结

本文简单谈了统计信息对于查询路径选择的影响。过时的统计信息很容易造成查询性能的降低。因此,定期更新统计信息是DBA重要的工作之一。

推荐整理分享浅谈SQL Server中统计对于查询的影响分析(sql server的go),希望有所帮助,仅作参考,欢迎阅读内容。

浅谈SQL Server中统计对于查询的影响分析(sql server的go)

文章相关热门搜索词:sql server基本,sql server?,sql servers,sql server干嘛的,sql server的go,sql servers,sql servers,sql server用处,内容如对您有帮助,希望把文章链接给更多的朋友!

用SQL统计SQLServe表存储空间大小的代码 其实SQLServer提供了一个sp_spaceused的系统存储过程可以实现该功能,下面就是调用的SQL:createtable#tb(表名sysname,记录数int,保留空间varchar(),使用空间varchar(

ROW_NUMBER SQL Server 的LIMIT功能实现(ROW_NUMBER()排序函数) 语法:ROW_NUMBER()OVER([partition_by_clause]order_by_clause)备注:ORDERBY子句可确定在特定分区中为行分配唯一ROW_NUMBER的顺序。参数:partition_by_clause将FROM子句生成

SQL SERVER数据操作类代码 usingSystem;usingSystem.Data;usingSystem.Configuration;usingSystem.Web;usingSystem.Web.Security;usingSystem.Web.UI;usingSystem.Web.UI.WebControls;usingSystem.Web.UI.WebControls.WebParts;usingSystem.We

标签: sql server的go

本文链接地址:https://www.jiuchutong.com/biancheng/348554.html 转载请保留说明!

上一篇:SQL Server中的执行引擎入门 图解(sql server 执行语句)

下一篇:mysql 5.7.14 免安装版注意事项(精)(mysql5.7免安装版)

  • 个体户是否属于免征纳税对象是什么意思
  • 房屋买卖收税
  • 特许权使用费所得包括
  • 城建税的税目是哪些
  • 代扣代缴增值税是什么意思
  • 会计电算化的内容及过程
  • 个人话费发票怎么入账
  • 如何查看增值税申报表
  • 无形资产摊销计算例题
  • 资本公积和实收资本是什么意思
  • 法人把自己的车租给公司交什么税
  • 物业公司临时工的工资可以进成本吗
  • 未进行账务处理违反什么
  • 公司库存现金如何存回银行
  • 酒生产车间
  • 专票红冲后的账务处理
  • 购进货物作为优秀员工的奖励是否可以进项抵扣?
  • 金三系统打印控件下载及报税流程
  • 外籍人员来华工作
  • 存货占比小有什么影响
  • 固定资产出售后净残值怎么处理
  • 企业所得税年报和增值税收入不一致
  • 酒精是否属于消费税征税范围
  • 申报补贴项目 审计
  • 企业减免税款的会计分录
  • 进项税额转出如何做账分录
  • 苹果mac修改用户名和密码
  • 苹果推送最新系统怎么弄
  • 外商投资企业注册登记
  • 计提坏账准备的方法有哪些
  • php怎么取数组
  • 3d点云处理算法
  • 会员信息查询系统
  • 应付职工薪酬总账和明细账
  • 物业监控安装地点要求
  • 对象是类的实例,一个对象必须属于一个已知的类
  • 基本户转到法人账户会计分录
  • mysql千万级数据group by
  • 税务局返还手续费
  • 成本会计制造费用核算的内容
  • 营业外收入 销项税
  • 母子公司收入合并
  • 找社保代理公司需要提供什么资料
  • 赠送商品入什么科目
  • 现金流量表和其他报表的勾稽关系
  • 营改增后哪些费用可以抵扣
  • 捐赠支出的账务处理
  • 银行代发的工资公司要求返还然后发一半
  • 股权转让如何计算股权原值
  • 自产产品用于不动产
  • 境外分回的股息在本国抵免限额怎么算
  • 投资的信托基金有哪些
  • 什么是定额发票图片
  • 租来的办公室装修费摊销几年
  • 纳税筹划有哪些特点以及原则?
  • linux i
  • u 盘装wⅰn10系统
  • 如何知道自己的邮箱号
  • winxp0000007b修复
  • 苹果Mac OS X通知中心提示音怎么修改 OS X通知中心提示音更换方法图解
  • win10语音控制电脑
  • cocos2dx游戏有哪些
  • jquery如何赋值
  • 一键备份系统和一键还原系统
  • cocos2djs
  • celery使用
  • 怎么在html中调用js的函数
  • 深入解析java编译器:源码剖析与实例详解
  • 批处理执行另一个批处理
  • html超链接打开本地文件
  • android监听应用打开
  • js原型作用
  • 手机端apk反编译工具_android反编译工具
  • unity c语言
  • javascript怎么样
  • 税务非正常户转正常户的申请报告
  • 广东省电子学校
  • 江苏电子税务局官网登录入口
  • 广东省深圳市地图最新版
  • 威科先行个人一年费用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设