创新互联OceanBase教程:OceanBaseSQL请求执行流程

SQL 引擎从接受 SQL 请求到执行的典型流程如下图所示:

成都创新互联公司是一家专业提供迁西企业网站建设,专注与成都网站制作、做网站、H5高端网站建设、小程序制作等业务。10年已为迁西众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

下表为 SQL 请求执行流程的步骤说明。

 步骤  说明
 Parser(词法/语法解析模块)  在收到用户发送的 SQL 请求串后,Parser 会将字符串分成一个个的“单词”,并根据预先设定好的语法规则解析整个请求,将 SQL 请求字符串转换成带有语法结构信息的内存数据结构,称为语法树(Syntax Tree)。
 Plan Cache(执行计划缓存模块)  执行计划缓存模块会将该 SQL 第一次生成的执行计划缓存在内存中,后续的执行可以反复执行这个计划,避免了重复查询优化的过程。
 Resolver(语义解析模块)  Resolver 将生成的语法树转换为带有数据库语义信息的内部数据结构。在这一过程中,Resolver 将根据数据库元信息将 SQL 请求中的 Token 翻译成对应的对象(例如库、表、列、索引等),生成的数据结构叫做 Statement Tree。
 Transfomer(逻辑改写模块)  分析用户 SQL 的语义,并根据内部的规则或代价模型,将用户 SQL 改写为与之等价的其他形式,并将其提供给后续的优化器做进一步的优化。Transformer 的工作方式是在原 Statement Tree 上做等价变换,变换的结果仍然是一棵 Statement Tree。
 Optimizer(优化器)  优化器是整个 SQL 请求优化的核心,其作用是为 SQL 请求生成最佳的执行计划。在优化过程中,优化器需要综合考虑 SQL 请求的语义、对象数据特征、对象物理分布等多方面因素,解决访问路径选择、联接顺序选择、联接算法选择、分布式计划生成等多个核心问题,最终选择一个对应该 SQL 的最佳执行计划。
 Code Generator(代码生成器)  将执行计划转换为可执行的代码,但是不做任何优化选择。
 Executor(执行器)
     启动 SQL 的执行过程。

  • 对于本地执行计划,Executor 会简单的从执行计划的顶端的算子开始调用,根据算子自身的逻辑完成整个执行的过程,并返回执行结果。
  • 对于远程或分布式计划,将执行树分成多个可以调度的子计划,并通过 RPC 将其发送给相关的节点去执行。

文章标题:创新互联OceanBase教程:OceanBaseSQL请求执行流程
网页URL:http://www.mswzjz.cn/qtweb/news36/395186.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能