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