博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 执行计划中的扫描方式举例说明
阅读量:7105 次
发布时间:2019-06-28

本文共 767 字,大约阅读时间需要 2 分钟。

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少一步

你可能感兴趣的文章
DNS域名解析过程 五月的仓颉
查看>>
Comment Mail Notify:适用于Twenty Ten主题的WordPress评论邮件回复代码
查看>>
java程序员学习c++的感觉
查看>>
android中Handler详解
查看>>
如何在腾讯云快速构建一个Wordpress个人站点
查看>>
nginx与tomcat结合,动静分离
查看>>
IP Source Guard
查看>>
jvm学习-垃圾收集
查看>>
linux用文件锁实现保证一个程序只能启动一个进程
查看>>
使用wget工具抓取网页和图片
查看>>
linux下oracle开机启动
查看>>
【Linux命令】对抗遗忘 -ls 命令系列
查看>>
MyEclipse launch configuration 的清除
查看>>
各大互联网公司架构演进之路汇总
查看>>
js 改变地址栏中的url
查看>>
rsync+inotify
查看>>
我的友情链接
查看>>
F5 wireshark plugin
查看>>
MySQL企业版之优势
查看>>
我的友情链接
查看>>