判断当前数据库使用何种优化器optimizer_mode初始化参数决定。该参数可能的取值为:first_rows_[1 | 100 | 1000] | first_rows | all_rows | choose | rule。具体解释如下:

  • RULE为使用RBO优化器。
  • CHOOSE则根据实际情况选择优化器。如果数据字典中包含被引用的表的统计数据,则使用CBO优化器,否则使用RBO优化器。
  • ALL_ROWS为CBO优化器使用的第一种具体的优化方法,主要以数据的吞吐量为目标,尽可能使用最少的资源完成语句。
  • FIRST_ROWS为优化器使用的第二种方法,重点是数据响应时间,快速查询出前几行数据。
  • FIRST_ROWS_[1 | 100 | 1000]为优化器选择响应时间最小的执行计划,以迅速生成查询结果的前n行。

查看当前设置的优化器模式可使用命令:show parameter OPTIMIZER_MODE