索引跳跃式扫描(INDEX SKIP SCAN)

索引跳跃式扫描(INDEX SKIP SCAN)适用于所有类型的复合B树索引(包括唯一性索引和非唯一性索引),它使那些在where条件中没有对目标索引的前导列指定查询条件但同时又对该 索引的非前导列指定了查询条件的目标SQL依然可以用上该索引,这就像是在扫描该索引时跳过了它的前导列,直接从该索引的非前导列开始扫描一样(实际的执行过程并非如此),这也是索引跳跃式扫描中"跳跃"(SKIP)一词的含义。

为什么在where条件中没有对目标索引的前导列指定查询条件但Oracle依然可以用上该索引呢?这是因为Oracle帮你对该索引的前导列的所有distinct值做了遍历。

实例

创建一个测试表EMPLOYEE:

create table employee(gender varchar2(1),employee_id number);

将该表的列EMPLOYEE_ID的属性设为NOT NULL:

alter table employee modify(employee_id not null);

创建一个名为IDX_EMPOLYEE的复合B树索引,其中列GENDER是该索引的前导列,列EMPLOYEE_ID是该索引的第二列:

create index idx_employee on employee(gender,employee_id);

使用如下PL/SQL代码往表EMPLOYEE中插入10,000条记录,其中5,000条记录的列GENDER的值为"F",另外5,000条记录的列GENDER的值为"M":

begin

for i in 1..5000 loop

insert into employe

oracle index skip scan,索引跳跃式扫描(INDEX SKIP SCAN)相关推荐

  1. php唯一索引,索引唯一性扫描(INDEX UNIQUE SCAN)

    SCOTT@PDBORCL> select * from emp where empno=7369; 执行计划 ----------------------------------------- ...

  2. Oracle执行计划。RBO优化器和CBO优化器。TABLE ACCESS FULL,TABLE ACCESS BY INDEX ROWID,TABLE ACCESS BY INDEX SCAN

    文章目录 通过PL/SQL Developer查看查询的执行计划 1. 什么是执行计划 2. 配置执行计划需要显示的项 3执行计划的常用列字段解释 4. 使用执行计划 5. 查看执行计划 5.1 执行 ...

  3. 索引全扫描与索引快速扫描的区别

    1.索引全扫描(index full scan),跟随全表扫描样,索引也存在全扫描.全索引扫描只在CBO下有效,当优化器认为全索引扫描比全表扫描更有效时,才使用全索引扫描. 例如:select id ...

  4. oracle合理的使用索引原则

    原则: 首先,看是否用上索引.对于该使用索引而没有用上索引的sql,应该想办法用上索引,避免全表扫描. 其次,看是否用上了合理的索引,特别是复杂的sql语句,当其中where子句包含多个带有索引的字段 ...

  5. oracle查询不走索引全表扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景-Oracle...

    使用索引快速全扫描(Index FFS)避免全表扫描的若干场景 什么使用使用Index FFS比FTS好? Oracle 8的Concept手册中介绍: 1. 索引必须包含所有查询中参考到的列. 2. ...

  6. oracle 索引快速全扫描,使用索引快速全扫描(Index FFS)避免全表扫描的若干场景

    使用索引快速全扫描(Index FFS)避免全表扫描(FTS) (文档 ID 70135.1) 什么使用使用Index FFS比FTS好? Oracle 8的Concept手册中介绍: 1. 索引必须 ...

  7. oracle 索引快速全扫描,使用目录快速全扫描(Index FFS)避免全表扫描的若干场景

    使用索引快速全扫描(Index FFS)避免全表扫描的若干场景 使用索引快速全扫描(Index FFS)避免全表扫描(FTS) (文档 ID 70135.1) 什么使用使用Index FFS比FTS好 ...

  8. Oracle索引梳理系列(五)- Oracle索引种类之表簇索引(cluster index)

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  9. check oracle 为空值_索引(index)-Oracle高级知识(3)-数据库(23)

    这篇文章是Oracle数据库的高级知识: 索引(index) 是非常重要的内容.知识点繁杂,靠理解.实战和笔记来熟练运用. 3 索引(Index) 3.1 什么是索引 在关系型数据库中,索引是一种单独 ...

最新文章

  1. 机器学习中的分类距离
  2. 试试博客园的markdown编辑器
  3. ie禁止html复制元素,JavaScript_禁止选中文字兼容IE、Chrome、FF等,复制代码 代码如下: $(el).attr('u - phpStudy...
  4. Bugzilla安装过程
  5. 风控建模 python 知乎_风控建模基本要求及面试问题小结
  6. mmap无血缘关系进程间通信
  7. linux挂载查看、添加与取消
  8. python编程函数_python函数式编程
  9. chrome样式不生效_Chrome开发者工具的11个使用技巧
  10. Android8.1展讯平台之audio_policy_configuration.xml(四十二)
  11. backtrack5 oracle,BackTrack5(BT5)硬盘安装
  12. Jvisualvm监控远程SpringBoot项目
  13. 微信APP支付的sgin拼接
  14. 【单片机】RGB和RGBW LED灯珠的区别
  15. python爬虫做毕业论文_基于Python的网络爬虫(智联招聘)开发与实现毕业论文+作品源码+演示视频...
  16. 玩转Linux操作系统常见操作,包括VMware安装,DHCP,DNS,Sendmail,NCSA验证,Apache,反向代理,webalizer,创建oracle用户,赋权,挂载
  17. 【Xilinx】Zynq\MPSoc\Versal不同速度等级下的ARM主频
  18. 如何设置word表格中文字与表格线之间的距离(缩短文字和上面表格线之间距离),让表格变得紧凑
  19. C语言求斜边程序,用C语言编写勾股定理求斜边
  20. 老码农眼中的大模型(LLM)

热门文章

  1. mysql kingshard 扩容_kingshard Go语言开发MySQL数据库中间件 - 新手站长网
  2. Python学习日记——罗马数字转整数
  3. 编码,快与慢:开发者和过度自信心理学
  4. linux非阻塞IO与阻塞IO的应用
  5. 京东店铺如何通过主图提高点击率?
  6. druid监控记录mysql_使用Druid监控SQL执行状态
  7. centos 彻底卸载docker
  8. root什么意思?为什么要获取root权限?
  9. IP、域名、端口有什么关系
  10. 格桑花---德乾旺姆