- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
看懂SqlServer查询计划.
看懂SqlServer查询计划
对于SqlServer的优化来说,可能优化查询是很常见的事情。关于数据库的优化,本身也是一个涉及面比较的广的话题,本文只谈优化查询时如何看懂SqlServer查询计划。由于我对SqlServer的认识有限,如有错误,也恳请您在发现后及时批评指正。
首先,打开【SQL Server Management Studio】,输入一个查询语句看看SqlServer是如何显示查询计划的吧。说明:本文所演示的数据库,是我写的一个演示程序专用的数据库, 可以在此网页中下载。
selectv.OrderID,v.CustomerID,v.CustomerName,v.OrderDate,v.SumMoney,v.Finished
from OrdersView asv
wherev.OrderDate =2010-12-1andv.OrderDate 2011-12-1;
其中,OrdersView是一个视图,其定义如下:
SELECT dbo.Orders.OrderID,dbo.Orders.CustomerID,dbo.Orders.OrderDate,
dbo.Orders.SumMoney,dbo.Orders.Finished,
ISNULL(dbo.Customers.CustomerName,N)ASCustomerName
FROM dbo.Orders LEFT OUTER JOIN
dbo.Customers ONdbo.Orders.CustomerID =dbo.Customers.CustomerID
对于前一句查询,SqlServer给出的查询计划如下(点击工具栏上的【显示估计的执行计划】按钮):
从这个图,我们至少可以得到3个有用的信息:1. 哪些执行步骤花费的成本比较高。显然,最右边的二个步骤的成本是比较高的。2. 哪些执行步骤产生的数据量比较多。对于每个步骤所产生的数据量, SqlServer的执行计划是用【线条粗细】来表示的,因此也很容易地从分辨出来。3. 每一步执行了什么样的动作。
对于一个比较慢的查询来说,我们通常首先要知道哪些步骤的成本比较高,进而,可以尝试一些改进的方法。一般来说,如果您不能通过:提高硬件性能或者调整OS,SqlServer的设置之类的方式来解决问题,那么剩下的可选方法通常也只有以下这些了:1. 为【scan】这类操作增加相应字段的索引。2. 有时重建索引或许也是有效的,具体情形请参考后文。3. 调整语句结构,引导SqlServer采用其它的查询方案去执行。4. 调整表结构(分表或者分区)。
下面再来说说一些很重要的理论知识,这些内容对于执行计划的理解是很有帮助的。
Sql Server 查找记录的方法
说到这里,不得不说SqlServer的索引了。SqlServer有二种索引:聚集索引和非聚集索引。二者的差别在于:【聚集索引】直接决定了记录的存放位置,或者说:根据聚集索引可以直接获取到记录。【非聚集索引】保存了二个信息:1.相应索引字段的值,2.记录对应聚集索引的位置(如果表没有聚集索引则保存记录指针)。因此,如果能通过【聚集索引】来查找记录,显然也是最快的。
Sql Server 会有以下方法来查找您需要的数据记录:1. 【Table Scan】:遍历整个表,查找所匹配的记录行。这个操作将会一行一行的检查,当然,效率也是最差的。2. 【Index Scan】:根据索引,从表中过滤出来一部分记录,再查找所匹配的记录行,显示比第一种方式的查找范围要小,因此比【Table Scan】要快。3. 【Index Seek】:根据索引,定位(获取)记录的存放位置,然后取得记录,因此,比起前二种方式会更快。4. 【Clustered Index Scan】:和【Table Scan】一样。注意:不要以为这里有个Index,就认为不一样了。其实它的意思是说:按聚集索引来逐行扫描每一行记录,因为记录就是按聚集索引来顺序存放的。而【Table Scan】只是说:要扫描的表没有聚集索引而已,因此这二个操作本质上也是一样的。5. 【Clustered Index Seek】:直接根据聚集索引获取记录,最快!
所以,当发现某个查询比较慢时,可以首先检查哪些操作的成本比较高,再看看那些操作是查找记录时,是不是【Table Scan】或者【Clustered Index Scan】,如果确实和这二种操作类型有关,则要考虑增加索引来解决了。不过,增加索引后,也会影响数据表的修改动作,因为修改数据表时,要更新相应字段的索引。所以索引过多,也会影
您可能关注的文档
- 白云房地产公司关键绩效指标..doc
- 白喉(diphtheria)..doc
- 白族村落的住居生活..doc
- 白沙企业文化法典..doc
- 白色MINIONE..doc
- 白象方便面营销策划..doc
- 白车身部分断面结构介绍..doc
- 白额高脚蛛毒腺cDNA文库构建..doc
- 白鹿塬生态农业观光园..docx
- 百万收入超级置业顾问训练(10天)..doc
- 主题课程整理大班上.doc
- 2026人教版小学语文三年级上册期末综合试卷3套(打印版含答案解析).docx
- 2026人教版小学语文四年级下册期末综合试卷3套(打印版含答案解析).docx
- 2026人教版小学二年级上册数学期末综合试卷精选3套(含答案解析).docx
- 2026人教版小学语文四年级上册期末综合试卷3套(含答案解析).docx
- 2026人教版小学二年级下册数学期末综合试卷3套(打印版含答案解析).docx
- 2026年地理信息行业年终总结汇报PPT.pptx
- 板块四第二十一单元封建时代的欧洲和亚洲 中考历史一轮复习.pptx
- 中考历史一轮复习:板块四第二十单元古代亚、非、欧文明+课件.pptx
- 第二次工业革命和近代科学文化中考历史一轮复习.pptx
最近下载
- 黔东南州2024—2025学年度第一学期期末文化水平测试九年级数学试卷.docx VIP
- 七年级数学上学期期末试卷(含解析)新人教版及答案.doc VIP
- 石油化工项目管理三查四定.pdf VIP
- T_CEAC 105-2025 TIL细胞治疗临床应用指南.pdf VIP
- 2020年电大考试《汉语基础》试题四份及答案【电大备考篇】.docx VIP
- 不同湿度、风速条件下的体感温度示意图.xls VIP
- ZJ70LC钻机使用说明书.doc VIP
- 土的不均匀系数和曲率系数自动计算表.xls VIP
- 《格林童话》课外阅读测试题【附答案】.docx VIP
- 人教版数学4年级下册全册课件(2025年3月修订).pptx
原创力文档


文档评论(0)