sql server执行计划教会我如何创建索引?

sql server执行计划教会我如何创建索引?

ID:30505208

大小:16.92 KB

页数:4页

时间:2018-12-30

sql server执行计划教会我如何创建索引?_第1页
sql server执行计划教会我如何创建索引?_第2页
sql server执行计划教会我如何创建索引?_第3页
sql server执行计划教会我如何创建索引?_第4页
资源描述:

《sql server执行计划教会我如何创建索引?》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解SQLServer执行计划教会我如何创建索引?  SQLServer执行计划,是我们分析SQL执行情况的一大利器,通过它,我们也可以很方面的查看索引的执行,在实践之前,需要了解一些必备技能,以下知识点摘自-看懂SqlServer查询计划。  SQLServer有二种索引:聚集索引和非聚集索引。二者的差别在于:【聚集索引】直接决定了记录的存放位置,或者说:根据聚集索引可以直接获取到记录。【非聚集索引】保存了二个信息:1.相应索引

2、字段的值,2.记录对应聚集索引的位置(如果表没有聚集索引则保存记录指针)。因此,如果能通过【聚集索引】来查找记录,显然也是最快的。  SQLServer会有以下方法来查找您需要的数据记录:  【TableScan】:遍历整个表,查找所有匹配的记录行。这个操作将会一行一行的检查,当然,效率也是最差的。  【IndexScan】:根据索引,从表中过滤出来一部分记录,再查找所有匹配的记录行,显然比第一种方式的查找范围要小,因此比【TableScan】要快。  【IndexSeek】:根据索引,定位(获取)记录的存放位置,然后取得记录,因此,比起前二种方式会更快。  【C

3、lusteredIndexScan】:和【Table对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解Scan】一样。注意:不要以为这里有个Index,就认为不一样了。其实它的意思是说:按聚集索引来逐行扫描每一行记录,因为记录就是按聚集索引来顺序存放的。而【TableScan】只是说:要扫描的表没有聚集索引而已,因此这二个操作本质上也是一样的。  【C

4、lusteredIndexSeek】:直接根据聚集索引获取记录,最快!  所以,当发现某个查询比较慢时,可以首先检查哪些操作的成本比较高,再看看那些操作在查找记录时,是不是【TableScan】或者【ClusteredIndexScan】,如果确实和这二种操作类型有关,则要考虑增加索引来解决了。不过,增加索引后,也会影响数据表的修改动作,因为修改数据表时,要更新相应字段的索引。所以索引过多,也会影响性能。还有一种情况是不适合增加索引的:某个字段用0或1表示的状态。例如可能有绝大多数是1,那么此时加索引根本就没有意义。这时只能考虑为0或者1这二种情况分开来保存了,分

5、表或者分区都是不错的选择。  应用分析  我们先不建任何索引(除了主键ID的聚集索引),来看一下上面SQL代码,在SQLServer执行计划中的执行情况:对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到只有中国共产党是全中国最广大人民利益的忠实代表我真正系统地接触和学习党的基本知识是在这次中级党校的培训班上。通过学习,了解了党的发展历程,对党的性质、宗旨、任务等基本知识有了进一步的了解  从上面的执行计划中,我们可以很直观的看出差别,所以在写SQL的时候,一定要慎重啊,这边为了方便展示,我们还是以ProduceTime字段进行排序,

6、按照ID排序,虽然没有了SORT性能开销,但是发现查询记录为“ClusteredIndexScan”,这是全表查询的意思,我们理想的应该是“IndexSeek”或者“ClusteredIndexSeek”,因为这种是按照索引查询,速度最快。按照我们程序员的理解,应该创建一个非聚集索引,比如下面IX_Product_Provider_State索引:  “IndexSeek”,这就是我们想要的效果,其实关于索引的创建有很多的现实问题,比如组合字段索引和单个字段索引有何不同?就像上面示例中的查询用例,如果ProduceTime排序在其他查询条件中也存在,是不是应该拉出

7、来创建一个索引?还是像上面一样,和查询条件一起创建一个组合字段索引?还有一种情况就是,在一个应用程序查询中,存在单个字段的查询,也存在组合字段的查询,那这时候我们是创建单个字段索引?还是创建组合字段索引呢?这几个问题,你创建一下索引,然后用“SQL执行计划”试试就知道了。总结针对上面的查询用例,我个人觉得,最好的方案是:排序字段使用ID,按照实际应用场景,提取出需要查询的字段,避免SELECT*,这样会减少在添加“包含性列”的字段,创建IX_Product_Provider_State对党的认识也有了进一步的提高。才真正体会到了中国共产党的伟大、光荣和正确,更感到

8、只有中国共

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

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

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