查询的执行计划生成主要包含以下几个步骤。

  • Controller节点接收查询请求、解析SQL语句;
  • 优化器对解析后的SQL语句进行分析,评估是否需要对查询树进行重写来提高查询性能;
  • 优化器生成最优的逻辑执行计划,从而规定特定的执行处理方式,例如join类型、join顺序、aggregation方式以及数据重分布方式等;
  • Executor节点将接收到的逻辑执行计划转换成物理执行计划。