oracle SQL 优化( CBO下使用更具选择性的索引)
2011-11-25 10:57
330 查看
基于成本的优化器(CBO, Cost-Based Optimizer)对索引的选择性进行判断来决定索引的使用是否能提高效率.
如果索引有很高的选择性, 那就是说对于每个不重复的索引键值,只对应数量很少的记录.
比如, 表中共有100条记录而其中有80个不重复的索引键值. 这个索引的选择性就是80/100 = 0.8 . 选择性越高, 通过索引键值检索出的记录就越少.
如果索引的选择性很低, 检索数据就需要大量的索引范围查询操作和ROWID 访问表的
操作. 也许会比全表扫描的效率更低.
译者按:
下列经验请参阅:
a. 如果检索数据量超过30%的表中记录数.使用索引将没有显著的效率提高.
b. 在特定情况下, 使用索引也许会比全表扫描慢, 但这是同一个数量级上的
区别. 而通常情况下,使用索引比全表扫描要块几倍乃至几千倍!
如果索引有很高的选择性, 那就是说对于每个不重复的索引键值,只对应数量很少的记录.
比如, 表中共有100条记录而其中有80个不重复的索引键值. 这个索引的选择性就是80/100 = 0.8 . 选择性越高, 通过索引键值检索出的记录就越少.
如果索引的选择性很低, 检索数据就需要大量的索引范围查询操作和ROWID 访问表的
操作. 也许会比全表扫描的效率更低.
译者按:
下列经验请参阅:
a. 如果检索数据量超过30%的表中记录数.使用索引将没有显著的效率提高.
b. 在特定情况下, 使用索引也许会比全表扫描慢, 但这是同一个数量级上的
区别. 而通常情况下,使用索引比全表扫描要块几倍乃至几千倍!
相关文章推荐
- Oracle SQL优化之使用索引提示一例
- oracle sql优化案例1(使用组合索引)
- 查看oracle的SQL是否使用了索引
- SQL优化,oracle trace使用
- oracle优化全表扫描和索引使用
- 【DBAplus】SQL优化:一篇文章说清楚Oracle Hint的正确使用姿势
- Oracle PL/SQL之函数索引(Function-based indexes)使用示例
- Hibernate Sql优化方案及索引使用
- SQL优化-索引 (二)结合实际,谈索引使用的误区
- SQL语句优化与索引的使用
- Oracle 索引及SQL优化
- Oracle CBO优化模式中的5种索引访问方法浅析
- SQL优化:一篇文章说清楚Oracle Hint的正确使用姿势
- SQL语句优化-重点在于使用到索引
- Oracle PL/SQL之函数索引(Function-based indexes)使用示例
- Oracle CBO优化模式中的5种索引访问方法浅析
- SQL优化之索引使用
- oracle sql 优化 方法 使用
- sql优化实战:从6秒+到2秒(使用索引)
- SQL优化基础 使用索引(一个小例子)