免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浅谈SQL Server中统计对于查询的影响 简介SQL Server查询分析器是基于开销的。通常来讲,查询分析器会根据谓词来确定该如何选择高效的查询路线,比如该选择哪个索引。而每次查询分析器寻找路径时,并不会每一次都去统计索引中包含的行数,值的范围等,而是根据一定条件创建和更新这些信息后保存到数据库中,这也就是所谓的统计信息。如何查看统计信息查看SQL Server的统计信息非常简单,使用如下指令:DBCC SHOW_STATISTICS(表名,索引名)所得到的结果如图1所示。图1.统计信息统计信息如何影响查询下面我们通过一个简单的例子来看统计信息是如何影响查询分析器。我建立一个测试表,有两个INT值的列,其中id为自增,ref上建立非聚集索引,插入100条数据,从1到100,再插入9900条等于100的数据。图1中的统计信息就是示例数据的统计信息。此时,我where后使用ref值作为查询条件,但是给定不同的值,我们可以看出根据统计信息,查询分析器做出了不同的选择,如图2所示。图2.根据不同的谓词,查询优化器做了不同的选择其实,对于查询分析器来说,柱状图对于直接可以确定的谓词非常管用,这些谓词比如:where date = getdate() where id= 12345 where monthly_sales (select sum(qty) from sales) where a.id =b.ref_idwhere col1 =1 and col2=2这类在运行时才能知道值的查询,采样步长就明显不是那么好用了。另外,上面第四行如果谓词是两个查询条件,使用采样步长也并不好用。因为无论索引有多少列,采样步长仅仅存储索引的第一列。当柱状图不再好用时,SQL Server使用密度来确定最佳的查询路线。密度的公式是:1/表中唯一值的 个数。当密度越小时,索引越容易被选中。比如图1中的第二个表,我们可以通过如下公式来计算一下密度:图3.某一列的密度根据公式可以推断,当表中的数据量逐渐增大时,密度会越来越小。对于那些不能根据采样步长做出选择的查询,查询分析器使用密度来估计行数,这个公式为:估计的行数=表中的行数*密度那么,根据这个公式,如果我做查询时,估计的行数就会为如图4所示的数字。图4.估计的行数我们来验证一下这个结论,如图5所示。图5.估计的行数因此,可以看出,估计的行数是和实际的行数有出入的,当数据分布均匀时,或者数据量大时,这个误差将会变的非常小。统计信息的更新由上面的例子可以看到,查询分析器由于依赖于统计信息进行查询,那么过时的统计信息则可能导致低效率的查询。统计信息既可以由SQL Server来进行管理,也可以手动进行更新,也可以由SQL Server管理更新时手动更新。当开启了自动更新后,SQL Server监控表中的数据更改,当达到临界值时则会自动更新数据。这个标准是: 向空表插入数据时 少于500行的表增加500行或者更多 当表中行多于500行时,数据的变化量大于20%时 上述条件的满足均会导致统计被更新。当然,我们也可以使用如下语句手动更新统计信息。UPDATE STATISTICS 表名索引名列级统计信息SQL Server还可以针对不属于任何索引的列创建统计信息来帮助查询分析器获取”估计的行数“.当我们开启数据库级别的选项“自动创建统计信息”如图6所示。图6.自动创建统计信息当这个选项设置为True时,当我们where谓词指定了不在任何索引上的列时,列的统计信息会被创建,但是会有以下两种情况例外: 创建统计信息的成本超过生成查询计划的成本 当SQL Server忙时不会自动生成统计信息 我们可以通过系统视图sys.stats来查看这些统计信息,如图7所示。图7.通过系统视图查看统计信息当然,也可以通过如下语句手动创建统计信息:CREATE STATISTICS 统计名称 ON 表名 (列名 ,.n) 总结本文简单谈了统计信息对于查询路径选择的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年无锡城市职业技术学院单招职业技能测试题库及参考答案详解1套
- 2026年湖南吉利汽车职业技术学院单招职业倾向性测试题库及答案详解1套
- 2026年陕西学前师范学院单招职业倾向性测试题库附答案详解
- 2026年北海职业学院单招职业技能考试题库参考答案详解
- 2026年扬州工业职业技术学院单招职业技能考试题库参考答案详解
- 2026年柳州职业技术学院单招职业倾向性测试题库带答案详解
- 2026年甘肃省定西地区单招职业适应性考试题库参考答案详解
- 2026年河南职业技术学院单招职业技能考试题库及参考答案详解1套
- 2026年陕西省安康地区单招职业适应性测试题库含答案详解
- 2026年广州工程技术职业学院单招职业倾向性考试题库及答案详解一套
- 从消费视角探究大型体育赛事观众观赛意愿的影响因素及提升策略分析
- 智能门锁安装与维护手册及常见问题处理
- 中餐烹饪专业教学标准(中等职业教育)2025修订
- 矿山物资配送方案(3篇)
- 2025年国有企业改革相关考试试题及答案
- 2025年水泥电杆市场发展现状
- T/CCS 058-2023智能化煤矿运维术语和定义
- 顺丰java外包面试题及答案
- 快艇维修协议合同书
- 合规金融的新生面:金融机构合规管理的新篇章
- 科技公司研发资金使用计划与预算
评论
0/150
提交评论