索引扫描与索引查找
来源:互联网 发布:淘宝直播怎么上链接 编辑:程序博客网 时间:2024/05/21 22:29
一、索引扫描
与表扫描类似,都是把索引从开始扫描到结束。
二、索引查找
会根据你查询的字符,定位到索引的局部位置,然后再开始查找,不用把整个索引全部扫描一遍,在效率上比索引扫描快很多。
三、索引扫描与索引查找实例
1、表结构
create table person (id int, last_name varchar(30), first_name varchar(30))create unique clustered index person_id on person (id)create index person_name on person (last_name, first_name)
2、select id from person where last_name = 'Doe' and first_name = 'John'
查询分析:
|--Index Seek(OBJECT:([person].[person_name]), SEEK:([person].[last_name]='Doe' AND [person].[first_name]='John'))
图形查询计划:
3、select id from person where last_name > 'Doe' and first_name = 'John'
查询分析:
|--Index Seek(OBJECT:([person].[person_name]), SEEK:([person].[last_name] > 'Doe'), WHERE:([person].[first_name]='John'))
图形查询计划:
4、select id from person where last_name like '%oe' and first_name = 'John'
查询分析:
|--Index Scan(OBJECT:([person].[person_name]), WHERE:([person].[first_name]='John' AND [person].[last_name] like '%oe'))
图形查询计划:
三、SQL Server 中什么情况极易会导致其执行计划从索引查找(Index Seek)变成索引扫描(Index Scan)
1、隐式转换极易会导致执行计划从索引查找(Index Seek)变为索引扫描(Index Scan)
可以通过两种方式避免SQL做隐式转换:
(1)、确保比较的两者具有相同的数据类型。
(2)、使用强制转换(explicit conversion)方式。
2、非SARG谓词极易会导致执行计划从索引查找(Index Seek)变为索引扫描(Index Scan)
SARG(Searchable Arguments)又叫查询参数
不满足SARG形式的语句最典型的情况就是包括非操作符的语句,如:NOT、!=、<>;、!<;、!>;NOT EXISTS、NOT IN、NOT LIKE等,另外还有像在谓词使用函数、谓词进行运算等。
3、SQL查询返回数据页(Pages)达到了临界点(Tipping Point)极易会导致索引扫描(Index Scan)或表扫描(Table Scan)
4、统计信息缺失或不正确极易会导致索引扫描(Index Scan)
5、谓词不是联合索引的第一列极易会导致索引扫描(Index Scan)
- 索引扫描与索引查找
- 索引扫描与索引查找
- 索引扫描与索引查找
- 索引扫描与索引查找的区别
- SQL索引查找与索引扫描
- SQL SERVER中索引扫描与索引查找
- 索引与查找分析
- 非聚集索引查找转非聚集索引扫描
- 索引全扫描与索引快速扫描的区别
- MySQL松散索引扫描与紧凑索引扫描
- 索引扫描
- 索引扫描
- 索引扫描
- 索引表 索引查找
- Oracle索引命中与扫描规律总结
- mysql索引与全表扫描
- 索引查找
- 索引查找
- android中Drawable的mutate方法作用
- 2.剑指offer-数组中滑动窗口的最大值
- idea中新建web项目及启动项目的相关配置
- [SMOJ1421]栅栏
- NSTimer循环引用的问题
- 索引扫描与索引查找
- 集成 jpush-react-native 常见问题汇总 (iOS 篇)
- 工作记录:更新 Tomcat 版本以处理 漏洞相关
- 理解Java中的引用传递和值传递
- 设计模式之适配器模式
- TCP的状态 (SYN, FIN, ACK, PSH, RST, URG)
- c的动态内存管理
- 《深入分析JavaWeb技术内幕》读书笔记二.磁盘IO
- emojicon表情客户端和服务端的传递