[发明专利]查询即时JIT编译和执行的装置和方法有效
| 申请号: | 201680010877.6 | 申请日: | 2016-03-31 |
| 公开(公告)号: | CN107250983B | 公开(公告)日: | 2020-12-15 |
| 发明(设计)人: | 丁永华;张国根;朱澄 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F16/24 | 分类号: | G06F16/24;G06F16/242;G06F9/448 |
| 代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 王仲凯 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 查询 即时 jit 编译 执行 装置 方法 | ||
1.一种查询即时JIT编译和执行的方法,其特征在于,所述方法包括:
识别查询中的中央处理器CPU密集函数,所述CPU密集函数用于执行数据库查询;
在所述CPU密集函数中识别一个或者多个参数,其中所述一个或者多个参数代表在进行数据库查询时不同查询实例中可以变化的值的变量;
将所述CPU密集函数编译成包括所述一个或者多个参数的参数化中间表示IR;其中,所述一个或者多个参数用于在执行传入查询时被所述变量的常数值替代;
将所述CPU密集函数的参数化IR保存在参数化IR的目录中。
2.根据权利要求1所述的方法,其特征在于,还包括:
在准备执行传入查询时,从所述目录加载所述参数化IR;
在所述参数化IR中利用所述变量的常数值替代所述一个或者多个参数;
通过JIT编译利用替代所述一个或者多个参数的常数值编译所述参数化IR,以生成用于执行所述传入查询的机器代码。
3.根据权利要求2所述的方法,其特征在于,还包括:将所述参数化IR的唯一标识符ID保存在所述目录中,其中所述参数化IR是利用所述参数化IR的唯一标识符ID从所述目录加载。
4.根据权利要求2所述的方法,其特征在于,还包括:将所述编译的参数化IR的指针保存在用于通过所述机器代码执行所述传入查询的运行时间数据结构中。
5.根据权利要求1至4任一项所述的方法,其特征在于,在运行时间利用所述变量的值执行传入查询之前,将所述CPU密集函数编译成所述参数化IR。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述识别所述CPU密集函数包括:通过CPU性能分析识别受益于数据库查询执行引擎中JIT编译的CPU密集函数;所述CPU性能分析包括:利用函数追踪之前运行的查询中的CPU性能,以确定随着时间的推移CPU利用率的百分比和/或CPU资源或者性能指标,并且将追踪到的函数的所述CPU性能与未追踪到的函数或者预定阈值的CPU性能进行比较,其中,高于所述CPU利用率的平均百分比或者资源的函数被归类为所述CPU密集函数。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述在所述CPU密集函数中识别一个或者多个参数包括:利用数据库模式信息、表达式或者与查询中所述CPU密集函数相关的数据类型进行程序分析,以确定所述变量是否不变。
8.根据权利要求1至4任一项所述的方法,其特征在于,所述在所述CPU密集函数中识别一个或者多个参数包括:选择期望提供包括不可达代码去除、循环展开、常量折叠和传播、内联的虚函数调用或者通过函数指针进行调用等更多编译器优化的变量。
9.根据权利要求1至4任一项所述的方法,其特征在于,所述将所述CPU密集函数编译成所述参数化IR包括:在所述CPU密集函数中同时编译多个指令。
10.根据权利要求1至4任一项所述的方法,其特征在于,所述将所述CPU密集函数编译成参数化IR包括:
利用查询的CPU性能分析信息识别查询中的所述CPU密集函数;
利用程序分析、数据库模式信息、表达式或者与所述CPU密集函数相关的数据类型识别所述参数化IR的代表在不同查询实例中可以变化的值的变量的一个或者多个参数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201680010877.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:农学实验灌溉装置
- 下一篇:一种给水连供型市政景观花盆架





