当前位置: 首页 > news >正文

GaussDB SQL引擎(1)-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引擎的工作及原理

http://www.dtcms.com/a/345121.html

相关文章:

  • 从创新到落地:技术驱动下的企业管理变革新趋势
  • python-对图片中的人体换背景色
  • 小杰机械视觉(three day)——图象旋转、镜像、缩放、矫正
  • Android UI界面绘制
  • AI赋能体育训练突破:AI动作捕捉矫正精准、战术分析系统提效率,运动员破瓶颈新路径
  • AI计算提效关键。自适应弹性加速,基于存算架构做浮点运算
  • 自学嵌入式第二十五天:数据结构-队列、树
  • JavaWeb前端05(Vue工程化,Vue组件两种风格:组合式API 和 选项式API)及简单案例)
  • 文件下载和文件上传漏洞
  • FTP/TCP上传下载文件
  • C++ 判断: 深度解析与实战指南
  • 华中产业带跨境电商进阶:亚马逊加速器驱动下的多维度能力重构
  • CSS @media 媒体查询
  • Python从入门到自动化运维
  • 凌霄飞控开发日志兼新手教程——基础篇:认识基本的文件内容和相关函数作用(25电赛备赛版)
  • Quarkus 从入门到精通完整指南Q
  • Python socket远程部署工具服务
  • 云原生作业(k8s总结)
  • 爬虫基础学习-配置代理、以及项目实践
  • Spring Cloud系列—SkyWalking告警和飞书接入
  • CGI-CVE-2016-5385
  • 【实时Linux实战系列】实时网络流量监测与管理
  • tauri配置允许执行eval脚本,在打包cocos游戏web/phone移动端的时候一定要配置
  • canvas绘制图片等比缩放
  • 高边开关+BUCK+MOSFET:48V智能汽车动力链的“黄金三角”
  • Prometheus+Grafana监控mysql
  • AI推理革命:从Sequential Thinking到Agentic AI的演进之路——揭秘大语言模型思维进化的四重奏
  • 【Linux网络编程】Reactor反应堆模式
  • 氙灯市场报告:亚太成增长主力,汽车、医疗、科研多领域需求驱动行业发展
  • 永磁同步电机无速度算法--基于跟踪观测器的脉振正弦注入法