zoukankan      html  css  js  c++  java
  • SQL Server 执行计划中的扫描方式举例说明

    SQL Server 执行计划中的扫描方式举例说明

    原文地址:http://www.cnblogs.com/zihunqingxin/p/3201155.html

    1、执行计划使用方式
    选中需要执行的语句,点击Ctrl+L执行

    2、示例
    student表,id,name,address
    id上建立聚集索引
    Name建索引
    address无索引

    3、区别
    1. 【Table Scan】:遍历整个表,查找所有匹配的记录行。这个操作将会一行一行的检查,当然,效率也是最差的。
    以无索引字段为条件,按存放顺序一个个查,where address='123'


    2. 【Index Scan】:根据索引,从表中过滤出来一部分记录,再查找所有匹配的记录行,显然比第一种方式的查找范围要小,因此比【Table Scan】要快。
    多重条件,有索引列+无索引列,先从索引列找出范围,再遍历这个范围匹配无索引列。即索引+表扫描
    where name='cui' and address='123'

    3. 【Index Seek】:根据索引,定位(获取)记录的存放位置,然后取得记录,因此,比起前二种方式会更快。
    有索引的单独查询。通过索引找到位置,再找数据。where name='cui'

    4. 【Clustered Index Scan】:和【Table Scan】一样。
    注意:不要以为这里有个Index,就认为不一样了。其实它的意思是说:按聚集索引来逐行扫描每一行记录,因为记录就是按聚集索引来顺序存放的。而【Table Scan】只是说:要扫描的表没有聚集索引而已,因此这二个操作本质上也是一样的。

    5. 【Clustered Index Seek】:直接根据聚集索引获取记录,最快!
    where id=1; 聚集索引存的就是位置。比3少一步

  • 相关阅读:
    Redis学习-开始
    MongoDb学习1
    Git删除tag
    简单实现Windows服务 TopShelf
    autofac 注入普通服务和WCF服务
    MVC过滤器之 OnActionExcuted
    jquery的$.extend()、$.fn和$.fn.extend()
    quartz_jobs.xml标准配置
    常用工具类11-上传类
    常用工具类10-上传水印类
  • 原文地址:https://www.cnblogs.com/gossip/p/3843305.html
Copyright © 2011-2022 走看看