在 Oracle SQL 性能优化中,即使将 optimizer_mode 参数设置为 rule,也并非所有语句都会使用基于规则的优化器。满足以下任一条件时,Oracle 数据库将自动选择基于成本的优化器 (CBO):

  • 使用索引组织表 (IOT)。
  • Oracle 7.3 及更高版本中,表的并行度 (Parallel 选项) 设置大于 1。
  • 使用除 rule 以外的任何提示。