oracle 性能优化操作十五: 基于函数的索引要求等式匹配
2015-01-12 09:08
459 查看
前几篇博客例子中,我们创建了基于函数的索引,但是如果执行下面的查询:
得到的执行计划将还是(TABLE ACCESS FULL),因为只有当数据列能够等式匹配时,基于函数的索引才能生效,
这样对于这种索引的计划和维护的要求都很高。请注意,向表中添加索引是非常危险的操作,因为这将导致许多查询执行计划的变更。
然而,如果我们使用基于函数的索引就不会产生这样的问题,因为Oracle只有在查询使用了匹配的内置函数时才会使用这种类型的索引。
<span style="font-size:18px;">select * from emp where substr(ename,1,1)=’S’;</span>
得到的执行计划将还是(TABLE ACCESS FULL),因为只有当数据列能够等式匹配时,基于函数的索引才能生效,
这样对于这种索引的计划和维护的要求都很高。请注意,向表中添加索引是非常危险的操作,因为这将导致许多查询执行计划的变更。
然而,如果我们使用基于函数的索引就不会产生这样的问题,因为Oracle只有在查询使用了匹配的内置函数时才会使用这种类型的索引。
相关文章推荐
- oracle 性能优化操作十四: 使用基于函数的索引
- oracle 性能优化操作十四: 使用基于函数的索引
- oracle 性能优化操作九: 屏蔽无用索引
- oracle 性能优化操作十八: 决定使用全表扫描还是使用索引
- oracle 性能优化操作十八: 决定使用全表扫描还是使用索引
- oracle 性能优化操作七:索引提高数据分布不均匀时查询效率
- oracle 性能优化操作十七: 使用位图索引
- oracle 性能优化操作十六: 使用分区索引
- oracle 性能优化操作八: 利用HINT强制指定索引
- oracle 性能优化操作十七: 使用位图索引
- oracle 性能优化操作九: 屏蔽无用索引
- oracle 性能优化操作七:索引提高数据分布不均匀时查询效率
- oracle 性能优化操作八: 利用HINT强制指定索引
- oracle 实现基于函数的索引
- Oracle性能优化4-索引
- oracle 性能优化操作五:尽量去掉 "<>"
- oracle 性能优化操作三:增加查询的范围限制
- oracle 基于函数的索引
- Oracle性能优化5-索引的不足
- oracle性能优化之原因定位:Oracle为何没使用索引?(转)