oralce索引中INDEX SKIP SCAN 和 INDEX RANGE SCAN区别
INDEX SKIP SCAN
当表中建立有复合索引的时候,查询时,除复合索引第一列外,别的列作为条件时,且优化器模式为CBO,这个时候查询可能会用到INDEX SKIP SCAN
skip scan会检测出前导列的唯一值个数,每个唯一值都会作为常规扫描的入口,再次基础上做一次查找,最后将这些查询的结果合并返回;
举个例子:加入有这么一张表student(字段id,sex,name等)创建了一个复合索引(sex,name);
select id,sex,name where name = '张四'
上面这个查询条件name在复合索引中,且不是第一列,那么会将第一列sex,作为入口,sex列在数据库中无非两个值:男或女,那么它将转换为
select id,sex,name where sex = '男' and name = '张四'
union
select id,sex,name where sex = '女' and name = '张四';
也就是说sex有几个值,他就会有几个查询,并将这几个查询结果合并
如果入口的数据集较大时,那么这个查询效率是很低的。但是相比全表扫描来说也是很快的,相比直接索引来说效率是低下的
INDEX RANGE SCAN
range scan是一种常用的检索方式,在index range scan中oracle访问毗邻的索引条目,然后根据rowid去检索表里的条目,
例如查询:查询范围为80号的部门里的所有员工
select JOB_ID,FIRST_NAME from employees where DEPARTMENT_ID=80;
INDEX RANGE SCAN是范围扫描,举个例子,有1到100,分5个范围,要查询45就要到第3的范围里查,这样会很快
oralce索引中INDEX SKIP SCAN 和 INDEX RANGE SCAN区别的更多相关文章
- Index Skip Scan in Oracle  in 11g
		
http://viralpatel.net/blogs/oracle-index-skip-scan/ in 11g the same sql use index skip scan but in 1 ...
 - SQLSERVER中的ALLOCATION SCAN和RANGE SCAN
		
SQLSERVER中的ALLOCATION SCAN和RANGE SCAN 写这篇文章的开始,我还不知道ALLOCATION SCAN的工作原理是怎样的,网上资料少得可怜 求助了园子里的某位大侠,他看 ...
 - 索引跳跃式扫描(INDEX SKIP SCAN)
		
索引跳跃式扫描(INDEX SKIP SCAN) 索引跳跃式扫描(INDEX SKIP SCAN)适用于所有类型的复合B树索引(包括唯一性索引和非唯一性索引),它使那些在where条件中没有对目标索引 ...
 - 深入理解Oracle索引(1):INDEX SKIP SCAN 和 INDEX RANGE SCAN
		
㈠ Index SKIP SCAN 当表有一个复合索引,而在查询中有除了索引中第一列的其他列作为条件,并且优化器模式为CBO,这时候查询计划就有可能使用到SS ...
 - 【每日一摩斯】-Index Skip Scan Feature (212391.1)
		
INDEX Skip Scan,也就是索引快速扫描,一般是指谓词中不带复合索引第一列,但扫描索引块要快于扫描表的数据块,此时CBO会选择INDEX SS的方式. 官方讲的,这个概念也好理解,如果将复合 ...
 - index range scan,index fast full scan,index skip scan发生的条件
		
源链接:https://blog.csdn.net/robinson1988/article/details/4980611 index range scan(索引范围扫描): 1.对于unique ...
 - 索引范围扫描(INDEX RANGE SCAN)
		
索引范围扫描(INDEX RANGE SCAN)适用于所有类型的B树索引,当扫描的对象是唯一性索引时,此时目标SQL的where条件一定是范围查询(谓词条件为 BETWEEN.<.>等): ...
 - INDEX SKIP SCAN适用场景
		
--请记住这个INDEX SKIP SCAN扫描方式 drop table t purge;create table t as select * from dba_objects;update t s ...
 - Oracle 11G INDEX FULL SCAN 和 INDEX FAST FULL SCAN 对比分析
		
SQL> drop table test; 表已删除. SQL> create table test as select * from dba_objects where 1!=1; 表已 ...
 
随机推荐
- A Child's History of England.23
			
King William, fearing he might lose his conquest, came back, and tried to pacify the London people b ...
 - 随录、EJB和JTA
			
说道JTA(Java Transction Api),即事务的一种. 事务:说白了就是一组原子操作,是为了保证数据的安全性. 它,分为三类:JDBC事务,JTA事务,还有容器事务. JDBC是由Con ...
 - 转  proguard 混淆工具的用法 (适用于初学者参考)
			
转自:https://www.cnblogs.com/lmq3321/p/10320671.html 一. ProGuard简介 附:proGuard官网 因为Java代码是非常容易反编码的,况且An ...
 - lvm 创建扩展
			
fdisk /dev/sdgnpt8ewpartprobepvcreate /dev/sdg1vgcreate multibank /dev/sdg1lvcreate -l +100%FREE -n ...
 - mysql 索引 零记
			
索引算法 二分查找法/折半查找法 伪算法 : 1. 前提,数据需要有序 2. 确定数据中间元素 K 3. 比如目标元素 A与K的大小 3.1 相等则找到 3.2 小于时在左区间 3.3 大于时在右 ...
 - JDBC(1):JDBC介绍
			
一,JDBC介绍 SUN公司为了简化.统一对数据库的操作,定义了一套Java操作数据库的规范(接口),称之为JDBC.这套接口由数据库厂商去实现,这样,开发人员只需要学习jdbc接口,并通过jdbc加 ...
 - Spring Cloud使用
			
一.创建提供者工程01-provider-8081 (1) 创建工程 创建一个Spring Initializr工程,并命名为01-provider-8081.导入Lombok.Web.JPA及MyS ...
 - html上传图片的预览功能实现
			
表单代码(仅取上传文件部分): <input class="selectImg" style="position:absolute;opacity: 0;width ...
 - pyecharts简介
			
一.概况 Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可. 而 Python 是一门富有表达力的语言,很适合用于数据处理.当数据分析遇上数据可 ...
 - 如何优雅的在scrapy中使用selenium —— 在scrapy中实现浏览器池
			
1 使用 scrapy 做采集实在是爽,但是遇到网站反爬措施做的比较好的就让人头大了.除了硬着头皮上以外,还可以使用爬虫利器 selenium,selenium 因其良好的模拟能力成为爬虫爱(cai) ...