不要认为将optimizer_mode参数设为rule,就意味着所有语句都会使用基于规则的优化器。无论optimizer_mode参数如何设置,只要满足以下三个条件,就一定会使用CBO:1)如果使用索引优化表(IOTs),将自动使用CBO。2)从Oracle 7.3开始,如果表的Parallel degree选项设为大于1,则将自动使用CBO,无论是否使用rule hints。3)除了rule提示之外的任何提示都会导致自动使用CBO执行语句。