当ORACLE无法判断索引的等级高低差别,优化器将只使用一个索引,它就是在WHERE子句中被列在最前面的.

举例:

DEPTNO上有一个非唯一性索引,EMP_CAT也有一个非唯一性索引.

SELECT ENAME

FROM EMP

WHERE DEPTNO > 20

AND EMP_CAT > ‘A’;

这里, ORACLE只用到了DEPT_NO索引. 执行路径如下:

TABLE ACCESS BY ROWID ON EMP

INDEX RANGE SCAN ON DEPT_IDX

译者按:

我们来试一下以下这种情况:

SQL> select index_name, uniqueness from user_indexes where table_name = 'EMP';

INDEX_NAME                     UNIQUENES

------------------------------ ---------

EMPNO                          UNIQUE

EMPTYPE                        NONUNIQUE

SQL> select * from emp where empno >= 2 and emp_type = 'A' ;

no rows selected

Execution Plan

----------------------------------------------------------

   0      SELECT STATEMENT Optimizer=CHOOSE

   1    0   TABLE ACCESS (BY INDEX ROWID) OF 'EMP'

   2    1     INDEX (RANGE SCAN) OF 'EMPTYPE' (NON-UNIQUE)

虽然EMPNO是唯一性索引,但是由于它所做的是范围比较, 等级要比非唯一性索引的等式比较低!

最新文章

  1. UNITY自带的3D object没有三角形?
  2. Leetcode--Merge Two Sorted Lists
  3. hdu 5444 Elven Postman(根据先序遍历和中序遍历求后序遍历)2015 ACM/ICPC Asia Regional Changchun Online
  4. C++实现网格水印之调试笔记(五)—— 提取出错
  5. selenium 自动化测试面试题及答案
  6. Pots
  7. [HNOI 2013] 旅行 (数学)
  8. Delphi语言最好的JSON代码库 mORMot学习笔记1
  9. hh monitor
  10. [Linux] PHP程序员玩转Linux系列-telnet轻松使用邮箱
  11. Python——built-in module Help: math
  12. Codeforces Round #436 C. Bus
  13. 洛谷P2414 阿狸的打字机
  14. SQL服务器模式
  15. 张高兴的 .NET Core IoT 入门指南:(二)GPIO 的使用
  16. 更改Apache默认起始(索引)页面:DirectoryIndex
  17. synchronized同步代码块锁释放
  18. BZOJ3996 TJOI2015线性代数
  19. Java和.net对比分析
  20. rest-framework框架 -- 认证权限流程源码

热门文章

  1. agc015F Kenus the Ancient Greek
  2. 安装 Composer
  3. web前端学习(二)html学习笔记部分(11)-- 没有标号记录的知识合集
  4. 2019-2-16-WPF-封装-dotnet-remoting-调用其他进程
  5. VisualTreeHelper使用——使用BFS实现高效率的视觉对象搜索
  6. 部署 LAMP (CentOS 7.2)
  7. scroll 滚动到指定位置触发事件 and 点击一按钮/链接让页面定位在指定的位置
  8. java8的stream系列教程之filter过滤集合的一些属性
  9. oracle触发器——ddl触发器
  10. Python中的动态继承