Oracle中组合索引的使用详解
来源:互联网 发布:微信后台php 编辑:程序博客网 时间:2024/06/10 01:19
在Oracle中可以创建组合索引,即同时包含两个或两个以上列的索引。在组合索引的使用方面,Oracle有以下特点:
1、 当使用基于规则的优化器(RBO)时,只有当组合索引的前导列出现在SQL语句的where子句中时,才会使用到该索引;
2、 在使用Oracle9i之前的基于成本的优化器(CBO)时, 只有当组合索引的前导列出现在SQL语句的where子句中时,才可能会使用到该索引,这取决于优化器计算的使用索引的成本和使用全表扫描的成本,Oracle会自动选择成本低的访问路径(请见下面的测试1和测试2);
3、 从Oracle9i起,Oracle引入了一种新的索引扫描方式——索引跳跃扫描(index skip scan),这种扫描方式只有基于成本的优化器(CBO)才能使用。这样,当SQL语句的where子句中即使没有组合索引的前导列,并且索引跳跃扫描的成本低于其他扫描方式的成本时,Oracle就会使用该方式扫描组合索引(请见下面的测试3);
4、 Oracle优化器有时会做出错误的选择,因为它再“聪明”,也不如我们SQL语句编写人员更清楚表中数据的分布,在这种情况下,通过使用提示(hint),我们可以帮助Oracle优化器作出更好的选择(请见下面的测试4)。
0 0
- Oracle中组合索引的使用详解
- Oracle中组合索引的使用详解
- Oracle中组合索引的使用详解
- Oracle中组合索引的使用详解
- Oracle中组合索引的使用详解
- Oracle中组合索引的使用详解
- Oracle中组合索引的使用详解
- Oracle中组合索引的使用详解
- Oracle中组合索引的使用详解
- Oracle中组合索引的使用详解
- Oracle中组合索引的使用详解
- Oracle中组合索引的使用详解
- Oracle中索引的使用
- sql server中使用组合索引需要注意的地方
- 小议在Oracle中索引的使用
- oracle中序列 视图 索引 的 使用
- 在Oracle中索引的使用
- Oracle中索引的创建和使用
- Oracle 分区表介绍
- k-近邻 - 算法基本实现
- Java 并发:线程间通信与协作
- 文章标题
- Android系统之System Server大纲
- Oracle中组合索引的使用详解
- PHP &符号的引用
- Java日期时间(Date/Time)
- RPC 远程过程调用协议
- POJ - 3126 bfs + 素数筛法 [kuangbin带你飞]专题一
- 快速搭建Android开发环境ADT-Bundle及Hello World
- gulp的初阶使用方法
- Maven发布开发包到私服
- Ubuntu 16.04安装JDK1.8.0_121与配置环境变量