oracle多个平等的索引
2023-09-11 14:18:18 时间
当SQL语句的执行路径可以使用分布在多个表上的多个索引时, ORACLE会同时使用多个索引并在运行时对它们的记录进行合并, 检索出仅对全部索引有效的记录.
在ORACLE选择执行路径时,唯一性索引的等级高于非唯一性索引. 然而这个规则只有
当WHERE子句中索引列和常量比较才有效.如果索引列和其他表的索引类相比较. 这种子句在优化器中的等级是非常低的.
如果不同表中两个想同等级的索引将被引用, FROM子句中表的顺序将决定哪个会被率先使用. FROM子句中最后的表的索引将有最高的优先级.
如果相同表中两个想同等级的索引将被引用, WHERE子句中最先被引用的索引将有最高的优先级.
举例:
DEPTNO上有一个非唯一性索引,EMP_CAT也有一个非唯一性索引.
SELECT ENAME,
FROM EMP
WHERE DEPT_NO = 20
AND EMP_CAT = ‘A’;
这里,DEPTNO索引将被最先检索,然后同EMP_CAT索引检索出的记录进行合并. 执行路径如下:
TABLE ACCESS BY ROWID ON EMP
AND-EQUAL
INDEX RANGE SCAN ON DEPT_IDX
INDEX RANGE SCAN ON CAT_IDX
相关文章
- Oracle数据库:oracle数据表格dmp,sql,pde格式导入与导出,视图、序列、索引等对象的导出,oracle完结,后续开启mysql的学习
- Oracle数据库:oracle数据定义语言DDL,查询表、序列、索引、视图、创建表,修改表的列alter,rename to,删除表数据truncate和表drop
- Oracle数据库:oracle数据类型转换to_char()日期和数字转字符,to_number()字符转数字,to_date()字符转日期函数
- Oracle数据库:oracle函数,单行函数,多行函数,upper,lower,initcap,字符串函数
- Oracle数据库:oracle字符类型、数字类型、创建表表名的命名规则
- Oracle数据库:链接配置,包括sqlnet.ora里面的transnames.ora配置数据库标识符SID,listener暂时简单了解
- 查看Oracle的表中有哪些索引
- oracle如何查询哪个表数据量大
- 基于Java(SSH)+ Oracle 实现的(Web)视频教学平台【100010405】
- oracle避免在索引列上使用IS NULL和IS NOT NULL
- 转 mysql oracle 指定rand随机数范围
- 《高并发Oracle数据库系统的架构与设计》一第2章 高效B树索引
- oracle开并行原因(oracle 的并行机制)
- Oracle-where exists()、not exists() 、in()、not in()用法以及效率差异
- 读书笔记-《基于Oracle的SQL优化》-第一章-3
- Step2:配置Oracle Dataguard
- Oracle索引HINT的使用
- oracle提高之索引学习
- Oracle-单行函数大全