【技术实现步骤摘要】
【国外来华专利技术】在数据库查询执行引擎中利用参数化中间表示进行即时编译的装置和方法相关申请案交叉申请本申请要求于2015年4月15日递交的专利技术名称为“在数据库查询执行引擎中利用参数化中间表示进行即时编译的装置和方法”申请号为14/687,473的美国非临时专利申请案的权益和在先申请优先权,该在先申请的内容以引入的方式并入本文。
本专利技术涉及数据库处理,在特定实施例中,涉及在数据库查询执行引擎中利用参数化中间表示进行即时编译的装置和方法。
技术介绍
在现代数据系统中,例如通过采用固态磁盘(solidstatedrive,简称SSD)设备很大程度上避免了慢磁盘访问时,查询执行的中央处理器(centralprocessingunit,简称CPU)的成本变得越来越关键。即时(Just-in-time,简称JIT)编译是用于提高数据库系统中CPU性能的方法。JIT编译指的是在程序执行的运行时间而不是执行之前进行的查询执行中的编译方案。因为在代码优化、本地代码生成以及编译后的代码的质量方面的有效性,低级虚拟机(lowlevelvirtualmachine,简称LLVM)编译器的结构对于JIT编译是很好的候选。所述LLVM包括用于在运行时间生成特定查询函数的中间表示(intermediaterepresentation,简称IR)的组合函数(称作IRBuilder)。相比编译后的特定查询函数,所述LLVM可以更加高效地从所述IR生成优化的机器代码。但是LLVMIR在运行时间通过LLVMIRBuilder生成代码在时间和/或计算资源例如内存等方面代价较高且容易出错。或者可以利用LLV ...
【技术保护点】
一种支持在数据库管理系统中查询即时JIT编译和执行的方法,其特征在于,所述方法包括:识别查询中的中央处理器CPU密集函数;在所述CPU密集函数中识别一个或者多个参数,其中所述一个或者多个参数代表在不同查询实例中可以变化的值的变量;将所述CPU密集函数编译成包括所述一个或者多个参数的参数化中间表示IR;将所述CPU密集函数的参数化IR保存在参数化IR的目录中。
【技术特征摘要】
【国外来华专利技术】2015.04.15 US 14/687,4731.一种支持在数据库管理系统中查询即时JIT编译和执行的方法,其特征在于,所述方法包括:识别查询中的中央处理器CPU密集函数;在所述CPU密集函数中识别一个或者多个参数,其中所述一个或者多个参数代表在不同查询实例中可以变化的值的变量;将所述CPU密集函数编译成包括所述一个或者多个参数的参数化中间表示IR;将所述CPU密集函数的参数化IR保存在参数化IR的目录中。2.根据权利要求1所述的方法,其特征在于,还包括:在准备执行传入查询时,从所述目录加载所述参数化IR;在所述参数化IR中利用所述变量的常数值替代所述一个或者多个参数;通过JIT编译利用替代所述一个或者多个参数的常数值编译所述参数化IR,以生成用于执行所述传入查询的机器代码。3.根据权利要求2所述的方法,其特征在于,还包括:将所述参数化IR的唯一标识符ID保存在所述目录中,其中所述参数化IR是利用所述唯一ID从所述目录加载。4.根据权利要求2所述的方法,其特征在于,还包括:将所述编译的参数化IR的指针保存在用于通过所述机器代码执行所述传入查询的运行时间数据结构中。5.根据权利要求1至4任一项所述的方法,其特征在于,在运行时间利用所述变量的值执行传入查询之前,将所述CPU密集函数编译成所述参数化IR。6.根据权利要求1至5任一项所述的方法,其特征在于,所述识别所述CPU密集函数包括:通过追踪之前运行的查询中CPU的性能并且将追踪到的CPU密集函数的CPU性能与其他函数或者阈值的CPU性能进行比较来执行CPU性能分析。7.根据权利要求1至6任一项所述的方法,其特征在于,所述在所述CPU密集函数中识别一个或者多个参数包括:利用数据库模式信息、表达式或者与查询中所述CPU密集函数相关的数据类型进行程序分析,以确定所述变量是否不变。8.根据权利要求1至7任一项所述的方法,其特征在于,所述在所述CPU密集函数中识别一个或者多个参数包括:选择期望提供包括不可达代码去除、循环展开、常量折叠和传播、内联的虚函数调用或者通过函数指针进行调用等更多编译器优化的变量。9.根据权利要求1至8任一项所述的方法,其特征在于,所述将所述CPU密集函数编译成所述参数化IR包括:在所述CPU密集函数中同时编译多个指令。10.一种支持在数据库管理系统中查询即时JIT编译和执行的方法,其特征在于,所述方法包括:将中央处理器CPU密集函数编译成包括一个或者多个参数的参数化中间表示IR,其中所述一个或者多个参数代表在不同的查询实例中可以变化的值的变量;将所述CPU密集函数的参数化IR保存在参数化IR的目录中;在准备执行传入查询时,从所述目录加载参数化IR;在所述参数化IR中利用所述传入查询的变量的常数值替代所述一个或者多个参数;通过JIT编译利用替代所述一个或者多个参数的常数值编译所述参数化IR,以生成用于执行所述传入查询的机器代码。11.根据权利要...
【专利技术属性】
技术研发人员:丁永华,张国根,朱澄,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。