Oracle 数据库每次升级,查询优化器(Query Optimization)都会发生一些重要的变化。Oracle数据库12C中优化器最大的变化是自适应查询优化。Adaptive Query Optimization是一组能力,它使优化器能够对执行计划进行运行时调整,并发现能够导致更好统计的附加信息。当现有的统计数据不足以产生最优计划时,这种新方法是非常有用的。在自适应查询优化中有两个截然不同的方面:侧重于改进查询执行的自适应计划和用于改进查询执行计划的附加信息的自适应统计。
Oracle 12c的Adaptive Query Optimization便是为了避免使用效率低下的执行计划的新特性,该特性包含 Adaptive Plans和Adaptive Statistics两方面
Adaptive Query Optimization | |||||
---|---|---|---|---|---|
Adaptive Plans | Adaptive Statistics | ||||
Join Methods | Parallel Distribution Methods | Bitmap Pruning | Dynamic Statistics | Automatic Reoptimization | SQL Plan Directives |
在Oracle数据库12C R2中默认启用的自适应特性与Oracle数据库12C R1不同。
Adaptive Plan
默认情况下启用(Enabled)的特性
optimizer_adaptive_plans (默认值:TRUE) | 描述 |
Nested Loop Join / Hash join | The optimizer chooses between nested loops or hash joins at query runtime. |
Adaptive parallel distribution method | The parallel distribution method is determined at runtime. |
Star transformation bitmap pruning | Certain bitmap indexes may be |