oracle优化器
来源:互联网 发布:多益网络招聘学历要求 编辑:程序博客网 时间:2024/06/06 01:26
优化器:
Oracle的优化器有两种,基于规则的(RBO)和基于成本的(CBO).从oracle10g开始RBO被废除,
但我们仍然可以使用HINT使用它。
基于规则(RBO)的优化器:
如果表上有索引,并且where条件中正好有该列,那么基于规则的优化器就会走索引,
也不会考虑消耗问题。
如果几个表关联,就根据表在sql语句中的位置,决定那个表为驱动表,那个表为被驱动表。
我们创建了一张表,并在id列建了一个索引,数据在id列的分布很倾斜。
在基于规则的优化器里,当where条件中的条件为id列时,优化器会毫不犹豫的选择索引。
执行计划如下:
当查询条件为id=300时,选择索引很合理,但当条件为id=1时,全表扫描更合理,因为如果选择索引,oracle会先扫描索引块,在根据索引中记录的rowid扫描数据块,最终查询到数据,这样的话要扫描更多的数据块,消耗更多的I/O,所以此时全表扫描更合理。
基于成本(CBO)的优化器:
还使用上面的表test做实验。
我们看到当数据量大时,oracle选择全表扫描
当数据量小时,oracle选择索引
- Oracle优化之优化器的优化
- Oracle优化器
- ORACLE的优化器
- 关于Oracle优化器
- ORACLE优化器
- ORACLE优化器
- ORACLE的优化器
- Oracle的优化器
- Oracle的优化器
- Oracle的优化器
- oracle优化器
- oracle优化器
- Oracle优化器(Optimizer)!
- ORACLE优化器
- ORACLE优化器
- Oracle的优化器
- Oracle的优化器
- Oracle 优化器详解
- stm32f407之数字滤波(操作寄存器)
- R cannot be resolved to a variable
- codeforces 327 A Ciel and Dancing
- 高效 Java Web 开发框架 JessMA v3.2.1 正式发布
- stm32f407之CAN控制器(操作寄存器)
- oracle优化器
- 结束所有Activity程序
- 程序员扩充人脉那些事儿
- 使用 WinSCP 管理 Linux VPS/服务器上的文件
- stm32f407之DAC(操作寄存器)
- Android轩辕剑之ActionBar之一
- 从内存中加载png<摘自MFC源码>
- 黑马程序员 Math对象
- 如何让电脑在待机时不断网呢?