思维导图
Optimizer概述
Oracle数据库中的优化器是sql分析和执行的优化工具,它负责制定sql的执行计划,也就是它负责保证sql执行效率最高.
比如优化器决定Oracle是以什么样的方式方式访问数据,是全表扫描(Full Table Scan) 、索引范围扫描(Index Range Scan)还是全索引快速扫描(INDEX Fast Full Scan,INDEX_FFS).
对于多表关联查询,它负责确定表之间以一种什么样的方式来关联,比如Hash Join 还是 NESTED LOOPS或者是MERGE JOIN。
这些因素直接决定着sql的执行效率,所以优化器是sql执行的核心,它做出的执行计划的好坏,直接决定了sql的执行效率。
Oracle的优化器有两种
从ORACLE10G开始,RBO已经被弃用(但是我们依然可以通过HINT的方式使用它)。