[发明专利]在SQL表达式评估的上下文中的第一个Futamura投影在审
申请号: | 202080060776.6 | 申请日: | 2020-08-26 |
公开(公告)号: | CN114341832A | 公开(公告)日: | 2022-04-12 |
发明(设计)人: | P·范德;A·乌尔里希;L·戴恩斯;M·布兰特纳;B·霍斯巴赫;B·斯克勒盖尔;H·查菲 | 申请(专利权)人: | 甲骨文国际公司 |
主分类号: | G06F16/242 | 分类号: | G06F16/242;G06F9/455;G06F16/2453 |
代理公司: | 中国贸促会专利商标事务所有限公司 11038 | 代理人: | 边海梅 |
地址: | 美国加*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | sql 表达式 评估 上下文 中的 一个 futamura 投影 | ||
本发明涉及数据库查询的执行优化。本文是用于基于通过利用诸如部分评估、抽象句法树(AST)重写、即时(JIT)编译、动态分析、推测性逻辑以及Futamura投影之类的优化来翻译成域特定语言(DSL)进行查询解释的最优执行的技术。在实施例中,托管在计算机上的数据库管理系统(DBMS)生成表示数据库查询的查询树,该数据库查询包含由查询树的子树表示的表达式。DBMS生成表示子树的DSL指令的序列。在数据库查询的执行期间,执行DSL指令的序列以评估表达式。在实施例中,AST是从DSL指令的序列生成的。在实施例中,DSL AST基于包括动态剖析信息的运行时反馈循环被最优地重写。
技术领域
本发明涉及数据库查询的执行优化。在本文中是用于基于通过利用诸如部分评估、抽象句法树(AST)重写、即时(JIT)编译、动态剖析、推测性逻辑以及Futamura投影之类的优化翻译成域特定语言(DSL)进行查询解释的优化执行的技术。
背景技术
研究和工业的最新进展为给定的查询计划生成低级虚拟机(LLVM)位码。LLVM位码由LLVM编译器(LLC)通过经受代码生成步骤并通过在查询的编译时编译生成的代码被编译成机器代码。
代码生成和LLVM编译方法有很大的局限性。生成的代码是静态编译的,这意味着只考虑了在编译时可用的信息。这有明显的局限性,因为当前的运行时信息不能被考虑在内。当前的研究和行业解决方案无法利用动态剖析信息有几个原因。
οSQL表达式操作数中没有内置剖析基础设施。即使有,这也会产生很大的运行时开销。
ο编译时的先验知识也不可用,因为需要评估整个查询计划,包括所有中间结果。
ο不支持推测性逻辑。
附图说明
在附图中:
图1是描绘示例计算机的框图,该计算机基于通过利用诸如部分评估和即时(JIT)编译之类的优化翻译成域特定语言(DSL)进行解释来优化数据库查询的执行;
图2是描绘示例计算机过程的流程图,该过程用于基于通过利用诸如部分评估和JIT编译之类的优化翻译成DSL进行解释来优化数据库查询的执行;
图3是描绘示例数据库管理系统(DBMS)的框图,该DBMS在查询树中用合成的查询节点替换子树,该合成的查询节点具有对子树的部分评估;
图4是描绘示例DBMS过程的流程图,该DBMS过程在查询树中用合成的查询节点替换子树,该合成的查询节点具有对子树的部分评估;
图5是描绘DBMS的框图,该DBMS展示了诸如利用部分评估的渐进式优化;
图6是描绘示例DBMS过程的流程图,该DBMS过程直接或间接地从DSL指令序列生成编译;
图7是描绘由DBMS进行优化的示例的流程图,诸如用于结合到优化的编译中;
图8是描绘由DBMS进行的两个程序变换的示例的流程图,这些变换加速了解释和/或编译的执行;
图9是图示可以在其上实现本发明的实施例的计算机系统的框图;
图10是图示可以用于控制计算系统的操作的基本软件系统的框图。
具体实施方式
在下面的描述中,出于解释的目的,阐述了许多具体细节以便提供对本发明的透彻理解。但是,将显而易见的是,可以在没有这些具体细节的情况下实践本发明。在其它情况下,以框图形式示出了众所周知的结构和设备,以避免不必要地使本发明晦涩难懂。
总体概述
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于甲骨文国际公司,未经甲骨文国际公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202080060776.6/2.html,转载请声明来源钻瓜专利网。