[发明专利]一种用于编译串行和并行数据库查询执行计划的数据库系统和方法在审
| 申请号: | 201780077377.9 | 申请日: | 2017-12-05 |
| 公开(公告)号: | CN110100241A | 公开(公告)日: | 2019-08-06 |
| 发明(设计)人: | 裴春峰;张立 | 申请(专利权)人: | 华为技术有限公司 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2453 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 518129 广东*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 处理设备 数据库查询 并行执行 串行执行 树结构 资源量 编译 查询执行计划 并行数据库 数据库系统 解析 | ||
1.一种处理设备,其特征在于,包括:
包含指令的非瞬时性存储器;
一个或多个处理器,与所述存储器通信,其中所述一个或多个处理器执行所述指令以:
将数据库查询解析为树结构;
利用所述树结构编译用于所述数据库查询的串行执行计划;
利用所述树结构编译用于所述数据库查询的并行执行计划;
确定用于执行所述数据库查询的资源量;
基于所确定的所述资源量来选择至少一个所述串行执行计划或所述并行执行计划;
利用所选择的至少一个所述串行执行计划或所述并行执行计划来执行所述数据库查询。
2.根据权利要求1所述的处理设备,其特征在于,所述一个或多个处理器进一步执行所述指令以:
确定所述串行执行计划和所述并行执行计划共同的信息;
将所述信息存储在由所述串行执行计划和所述并行执行计划共享的公共数据结构中。
3.根据权利要求1所述的处理设备,其特征在于,所述一个或多个处理器进一步执行所述指令以:
在选择所述并行执行计划的情况下,基于所确定的所述资源量来确定所述并行执行计划的并行度,其中所述并行度小于所述数据库查询的条目数;
在选择所述并行执行计划的情况下,利用具有所确定的并行度的所述并行执行计划来执行所述数据库查询。
4.根据权利要求3所述的处理设备,其特征在于,在选择所述并行执行计划的情况下,利用轮询程序来执行所述数据库查询。
5.根据权利要求3所述的处理设备,其特征在于,所述一个或多个处理器进一步执行所述指令以:
确定所述资源量的变化;
基于所确定的所述资源量的变化来调整所述并行度。
6.根据权利要求5所述的处理设备,其特征在于,在完成与所述数据库查询的其中一个条目相关的执行之后,确定所述资源量的变化。
7.根据权利要求3所述的处理设备,其特征在于,在运行时确定所述并行执行计划的所述并行度。
8.根据权利要求1所述的处理设备,其特征在于,所述数据库查询包括联合算子、全联合算子、除法算子或交叉算子中的至少一个算子。
9.根据权利要求1所述的处理设备,其特征在于,所述执行发生在多个数据存储节点中的每个节点上。
10.根据权利要求1所述的处理设备,其特征在于,所确定的所述资源量包括处理线程的数量、处理核的数量或处理时间量中的至少一个。
11.根据权利要求1所述的处理设备,其特征在于,基于所确定的所述资源量,通过以下方式选择至少一个所述串行执行计划或所述并行执行计划:
将所确定的所述资源量与阈值进行比较;
基于所述比较,选择至少一个所述串行执行计划或所述并行执行计划。
12.一种计算机实现方法,其特征在于,包括:
将数据库查询解析为树结构;
利用所述树结构编译用于所述数据库查询的串行执行计划;
利用所述树结构编译用于所述数据库查询的并行执行计划;
确定用于执行所述数据库查询的资源量;
基于所确定的所述资源量来选择至少一个所述串行执行计划或所述并行执行计划;
利用所选择的至少一个所述串行执行计划或所述并行执行计划来执行所述数据库查询。
13.根据权利要求12所述的方法,其特征在于,还包括:
确定所述串行执行计划和所述并行执行计划共同的信息;
将所述信息存储在由所述串行执行计划和所述并行执行计划共享的公共数据结构中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201780077377.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:用于ZFS快照生成和存储的云网关
- 下一篇:表的增量聚类维护





