1 SQL执行流程
- 查询解析:词法 分析、语法 分析、 语义分析
- 查询重写:视图和规则 展开、基于规则的查询优化
- 计划生成:路径搜索 和枚举、选出最优执行计划
- 查询执行:基于优化器生成的物理执行计划对数据进行获取和计算

2 解析器和优化器
SQL是一种声明式语言 ,只需要指定想要达到的目的 ,即What,而不需要指定怎样达到这个目的,即How 。
解析器:处理"What"的定义 , 根据语法规则 和元数据 将SQL语句编译成为一个由关系算子 组成的逻辑执行 计划。
优化器:处理"How",即"What"的解法 ,通过基于关系代数的等价变换 、物理计划的枚举和基于统计信息的代价评估 来选择最优的物理执行计划。
3 执行器
1)迭代器模式(火山模型)
执行以算子迭代的方式驱动执行 ,
可将算子抽象为init() ,get_next (), end()三种类型操作。
上层算子通过嵌套调用下层算子的get_next ()处理返回数据。
初始化和结束操作也通 过init()和end()嵌套调用。

初始化:迭代遍历整个PlanTree,对每个算子进行初始化操作。
执行:当前算子处理下层算子返回值,处理后返回给上层算子。
结束:迭代遍历整个PlanTree,清理对 应算子内的资源。

4 批注
掌握GaussDB的SQL引擎的工作及原理