GaussDB 数据库架构师修炼(十八)SQL引擎-SQL执行流程

1 SQL执行流程

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

2 解析器和优化器

 SQL是一种声明式语言,只需要指定想要达到的目的,即What,而不需要指定怎样达到这个目的,即How 。
 解析器:处理"What"的定义, 根据语法规则元数据将SQL语句编译成为一个由关系算子组成的逻辑执行计划。
 优化器:处理"How",即"What"的解法,通过基于关系代数的等价变换、物理计划的枚举和基于统计信息的代价评估来选择最优的物理执行计划。

3 执行器

1)迭代器模式(火山模型)
执行以算子迭代的方式驱动执行
可将算子抽象为init() ,get_next (), end()三种类型操作。
上层算子通过嵌套调用下层算子的get_next ()处理返回数据。
初始化和结束操作也通   过init()和end()嵌套调用。

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

4 批注

掌握GaussDBSQL引擎的工作及原理

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值