当前位置: 首页 > 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/344091.html

相关文章:

  • 【Qt调试】断点时,Expressions不能查看变量
  • 新手向:用FastAPI快速构建高性能Web服务
  • 单北斗变形监测系统应用指南
  • c++:MFC中sqlite3的使用(附实际案例)
  • VScode远程连接Ubuntu报错问题分析
  • 表格识别技术:通过图像处理与深度学习,将非结构化表格转化为可编辑结构化数据,推动智能化发展
  • Mac电脑英特尔版本最新系统15.6.1安装php环境
  • 机试备考笔记 18/31
  • 使用 JS 渲染页面并导出为PDF 常见问题与修复
  • Laravel 使用阿里云OSS S3 协议文件上传
  • 高效稳定的仁懋MOSFET系列,打造卓越服务器电源
  • 【C++闯关笔记】封装②:友元与模板
  • git新建项目如何推送到远程仓库
  • 深度学习②【优化算法(重点!)、数据获取与模型训练全解析】
  • 医疗AI中的电子病历智能化:Model Context Protocol使用从规则编码到数据涌现
  • 齐次变换矩阵的逆变换:原理与SymPy实现
  • 零音乐基础想创作?通过cpolar,ACE-Step远程编曲如此简单
  • Gauth-字节在海外推出的AI学习辅助应用
  • FFmpeg添加水印
  • 学习嵌入式第三十五天
  • PCB电路设计学习2 元件原理图封装的添加 手工设计元件封装
  • LeetCode100 -- Day4
  • webpack开发模式与生产模式(webpack --mode=development/production“, )
  • 如何修复“DNS服务器未响应”错误
  • OpenHarmony子系统介绍
  • LLM实践系列:利用LLM重构数据科学流程01
  • 数据分析专栏记录之 -基础数学与统计知识 2 概率论基础与python
  • OpenHands:开源AI软件开发代理平台的革命性突破
  • 密码管理中Null 密码
  • 第七章 愿景22 超级丹项目汇报