海量智库第5期|Vastbase G100核心技术介绍之「SQL by pass技术」

导语

SQL by pass的主要作用是针对某些简单的SQL生成的查询计划。如果查询计划是一个符合特定条件的查询计划,那么可以跳过原有迭代器模型的执行步骤,直接执行查询计划,将原有查询计划的初始化、执行、终结三个步骤集中到一个相邻的代码逻辑中执行,从而缩短了代码路径,使得热代码更加集中,最终能够加速查询计划的执行。

SQL by pass的核心原理

在传统关系数据库中,对于SQL处理一般分为三个阶段:

Ø 词法语法分析:主要是将用户的输入文本(SQL)转化成一个内部的数据结构,一般称之为语法解析树,并验证语法的正确性,最终得到一个表示SQL的语法解析树。

Ø 查询优化:将前一个阶段的语法解析树,进行基于规则以及基于物理代价的优化,生成一个最优的查询计划。

Ø 执行查询计划:将前一阶段生成的查询计划予以执行(一般采用迭代器的方式),将结果返回给用户。

为了加速SQL的处理,针对前两个阶段,一般使用类似query plan cache的方式,以避免对SQL进行重复的解析和生成查询计划,例如使用常见的PBE方式(prepare bind execute)。

对于第三个阶段,为了加速查询计划的执行,在很多数据库中采用了基于LLVM的JIT技术,这种主要是在典型的OLAP应用中,针对特定的逻辑生成固定的字节码,提高CPU的执行效率。而在我们面对的OLTP场景中,创新的使用了SQL by pass来提高查询计划的执行效率。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值