会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
gasstation
博客园
首页
新随笔
联系
订阅
管理
上一页
1
2
2022年11月12日
openGauss内核分析(七):SQL by pass & 经典执行器
摘要: 执行引擎一般负责查询的执行,执行引擎在SQL执行栈中起到接收优化器生成的执行计划Plan、并对通过存储引擎提供的数据读写接口,实现对数据进行计算得到查询的结果集。 在典型的OLTP场景中,简单查询占了很大一部分比例。这种查询的特征是只涉及单表和简单表达式的查询,因此为了加速这类查询,openGaus
阅读全文
posted @ 2022-11-12 09:42 ppddt
阅读(78)
评论(0)
推荐(0)
2022年11月11日
openGauss内核分析(六) 执行计划生成
摘要: SQL语句解析完成后被解析成Query结构,在进行优化时是以Query为单位进行的,Query的优化分为基于规则的逻辑优化(查询重写)和基于代价的物理优化(计划生成),主入口函数为subquery_planner。subquery_planner函数接收Query(查询树),返回一个Plan(计划树
阅读全文
posted @ 2022-11-11 11:29 ppddt
阅读(68)
评论(0)
推荐(0)
2022年11月10日
openGauss内核分析(五):统计信息与行数估计
摘要: SQL引擎执行查询主要经历了词法语法解析、查询重写、查询规划和计划执行等步骤。其中,在查询规划过程中,为了生成可执行的最优计划,首先要生成路径,而由于路径存在多样性,因此需要对路径进行淘汰选择。目前优化器进行路径的选择主要是基于估算的代价,因此这种优化器也被称为基于代价的优化器(Cost Based
阅读全文
posted @ 2022-11-10 21:21 ppddt
阅读(75)
评论(0)
推荐(0)
2022年11月9日
openGauss内核分析(四):查询重写
摘要: 查询重写 SQL语言是丰富多样的,非常的灵活,不同的开发人员依据经验的不同,手写的SQL语句也是各式各样,另外还可以通过工具自动生成。SQL语言是一种描述性语言,数据库的使用者只是描述了想要的结果,而不关心数据的具体获取方式,输入数据库的SQL语言很难做到是以最优形式表示的,往往隐含了一些冗余信息,
阅读全文
posted @ 2022-11-09 21:35 ppddt
阅读(54)
评论(0)
推荐(0)
2022年11月8日
openGauss内核分析(三):SQL解析
摘要: 在传统数据库中SQL引擎一般指对用户输入的SQL语句进行解析、优化的软件模块。SQL的解析过程主要分为: 词法分析Lexical Analysis:将用户输入的SQL语句拆解成单词(Token)序列,并识别出关键字、标识、常量等。 语法分析Syntax Analysis:分析器对词法分析器解析出来的
阅读全文
posted @ 2022-11-08 22:37 ppddt
阅读(101)
评论(0)
推荐(0)
2022年11月7日
openGauss内核分析(二):简单查询的执行
摘要: 本文主要分析简单查询语句在业务处理线程Postgres上的执行流程,并介绍如何利用gdb梳理代码逻辑。 简单查询的执行 SQL引擎是数据库系统的入口,执行用户简单查询的入口函数是exec_simple_query。运行在业务处理线程Postgres。 通常可以把SQL引擎分成SQL解析和查询优化两个
阅读全文
posted @ 2022-11-07 17:14 ppddt
阅读(72)
评论(0)
推荐(0)
2022年11月4日
openGauss内核分析(一):openGauss 多线程架构启动过程详解
摘要: openGauss数据库自2020年6月30日开源以来,吸引了众多内核开发者的关注。那么openGauss的多线程是如何启动的,一条SQL语句在 SQL引擎,执行引擎和存储引擎的执行过程是怎样的,酷哥做了一些总结,第一期内容主要分析openGauss 多线程架构启动过程。 openGauss数据库是
阅读全文
posted @ 2022-11-04 17:31 ppddt
阅读(208)
评论(0)
推荐(0)
上一页
1
2
公告