sql,server,清除执行计划

sql,server,清除执行计划

ID:29740347

大小:26.64 KB

页数:22页

时间:2018-12-23

sql,server,清除执行计划_第1页
sql,server,清除执行计划_第2页
sql,server,清除执行计划_第3页
sql,server,清除执行计划_第4页
sql,server,清除执行计划_第5页
资源描述:

《sql,server,清除执行计划》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划sql,server,清除执行计划  【如何使用SQLServer执行计划】  【看懂SQLServer执行计划】  【SQLServer执行计划各个动作含义】  【理解SQLServer执行计划的意思】  要理解执行计划,怎么也得先理解,那各种各样的名词吧。鉴于自己还不是很了解。本文打算作为只写懂的,不懂的懂了才写。  在开头要先说明,第一次看执行计划要注意,SQLServer的执行

2、计划是从右向左看的。名词解析:  扫描:逐行遍历数据。  先建立一张表,并给大家看看大概是什么样子的。  CREATETABLEPerson(  IdintIDENTITY(1,1)NOTNULL,  Namenvarchar(50)NULL,  AgeintNULL,  HeightintNULL,  Areanvarchar(50)NULL,  MarryHistorynvarchar(10)NULL,  EducationalBackgroundnvarchar(10)NULL,  Add

3、ressnvarchar(50)NULL,目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  InSiteIdintNULL  )ON[PRIMARY]  表中的数据14万左右,大概类似下面这样:  此表,暂时没有任何索引。  一、数据访问操作  1、表扫描  表扫描:发生于堆表,并且没有可用的索引可用时,会

4、发生表扫描,表示整个表扫描一次。现在,我们来对此表执行一条简单的查询语句:  SELECT*FromPersonWHEREName='公子'  查看执行计划如下:  表扫描,顾名思义就是整张表扫描,找到你所需要的数据了。  2、聚集索引扫描  聚集索引扫描:发生于聚集表,也相当于全表扫描操作,但在针对聚集列的条件如(WHEREId>  10)等操作时,效率会较好。  下面我们在Id列来对此表加上一个聚集索引  CREATECLUSTEREDINDEXIX_IdONPerson(Id)  再次执行

5、同样的查询语句:  SELECT*FromPersonWHEREName='公子'  执行计划如下:目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  为什么建的聚集索引在Id列,会对扫描有影响呢?更何况与Name条件也没关系啊?  其实,你加了聚集索引之后,表就由堆表变成了聚集表。我们知道聚集表的数据存在于

6、聚集索引的叶级节点。因此,聚集扫描与表扫描其实差别不大,要说差别大,也得看where条件里是什么,以后返回的数据。就本条SQL语句而言,效率差别并不大。  可以看看I/O统计信息:  表扫描:  聚集索引扫描:  此处超出本文范畴了,效率不在本文考虑范围内,本文只考虑的是,各种扫描的区别,以及为何会产生。  3、聚集索引查找  聚集索引查找:扫描聚集索引中特定范围的行。  看执行以下SQL语句:  SELECT*FROMPersonWHEREId='73164'  执行计划如下:  4、索引扫描

7、  索引扫描:整体扫描非聚集索引。  下面我们来添加一个聚集索引,并执行一条查询语句:  CREATENONCLUSTEREDINDEXIX_NameONPerson(Name)--创建非聚集索引目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划  SELECTNameFROMPerson  查看执行计划如下:

8、  为什么此处会选择索引扫描(非聚集索引)呢?因为此非聚集索引能够覆盖所需要的数据。如果非聚集索引不能覆盖呢?例如,我们将SELECT改为SELECT*再来看看。  好明显,返回结果所包括的记录太多,用非聚集索引反而不合算。因此使用了聚集索引。如果此时我们删除聚集索引,再执行SELECT*看看。  DROPINDEX_Id  而此时没有聚集索引,所以只有使用表扫描。5、书签查找  前面关于索引的学习我们已经知道,当在非聚集索引中并非覆盖和包含所需全部的列时,SQLServer会选择,直接进行聚集

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。