在进行ORACLE_SQL性能优化时,请注意以下几点,尤其是关于optimizer_mode参数的配置。不要认为将optimizer_mode参数设为rule,就认为所有的语句都会使用基于规则的优化器。事实上,不论optimizer_mode参数如何设置,只要满足以下条件,Oracle将自动使用CBO(成本基于优化器)来执行语句:
1) 如果使用Index Only Tables(IOTs),则自动使用CBO。
2) 自Oracle 7.3以后,如果表上的Parallel degree option设置为>1,Oracle会自动使用CBO,即使使用了rule hints也不例外。
3) 除rule以外的任何hints都将导致自动使用CBO来执行语句。