[发明专利]一种基于列存储的多核并行数据查询优化方法有效

专利信息
申请号: 201310306838.9 申请日: 2013-07-19
公开(公告)号: CN103324765A 公开(公告)日: 2013-09-25
发明(设计)人: 刘慧;刘志镜;袁通;王韦桦;邱龙滨;强波;曹志高;王梓;赵宏伟;李雨楠;姚勇;屈鉴铭;张璐萱;张慧泽;徐曾 申请(专利权)人: 西安电子科技大学
主分类号: G06F17/30 分类号: G06F17/30;G06F9/46
代理公司: 北京科亿知识产权代理事务所(普通合伙) 11350 代理人: 汤东凤
地址: 710071 陕西省*** 国省代码: 陕西;61
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 存储 多核 并行 数据 查询 优化 方法
【权利要求书】:

1.一种基于列存储的多核并行数据查询优化方法,其特征在于,所述方法包括以下步骤: 

(1)读取用户输入的查询语句; 

(2)生成查询计划,其中,对所述用户输入的查询语句,利用延时物化策略生成针对该查询语句的查询计划,所述查询计划可用图的形式来表示; 

(3)构建对应所述查询计划的映射-化简执行流程,根据所述查询计划图,利用映射-化简模型中的映射阶段和化简阶段的交叉使用构建基于图中操作节点的映射-化简执行流程,其中,一个映射-化简执行流程中可能包含一个或多个子映射-化简执行流程,而在子映射-化简执行流程中只包含一个映射阶段与一个化简阶段; 

(4)按照映射-化简执行流程完成所述查询计划的执行,依次执行映射-化简执行流程中的各个子映射-化简执行流程; 

(5)向所述用户输出查询结果。 

2.根据权利要求1所述的数据查询优化方法,其特征在于,所述步骤(3)包括以下步骤: 

(1)将所述查询计划划分成多个串行执行的子查询计划,构成子查询计划序列: 

(plan1,plan2,plan3,...,planm); 

其中,在某一操作符之前可并行执行的多个单独操作符或操作符集合作为一个子查询计划存在; 

(2)遍历子查询计划序列,若某个子查询计划planp的执行是以 子查询计划planq的执行为前提的,并且在planq中存在着多于一个的可并行执行的操作符,则将planp和planq合并为一个子映射-化简执行流程,同时,将planq标记为映射,将planp标记为化简。 

3.根据权利要求1所述的数据查询优化方法,其特征在于,所述步骤(4)包括如下步骤: 

(1)统计映射-化简执行流程队列中子映射-化简执行流程的个数,将其标记为count; 

(2)遍历映射-化简执行流程队列中的各个子映射-化简执行流程; 

(2.1)令k=1; 

(2.2)当k≤count时,读取映射-化简执行流程队列中第k个子映射-化简执行流程,通过对该子映射-化简执行流程中子查询计划的分析,确定在此子映射-化简执行流程中三个键值对的具体数据结构; 

(2.3)依次执行如下的映射阶段与化简阶段,其中各阶段的具体执行过程如下: 

映射阶段,读取该子流程中标记为映射的子查询计划,将该子查询计划中的多个并行操作分配给处于空闲状态的核;由这些核并行完成子查询计划中的多个操作; 

化简阶段,读取该子流程中标记为化简的子查询计划,并从中间结果集中读取相关数据,完成该子查询计划中的操作; 

(2.4)k++,返回步骤(2.2)。 

4.根据权利要求3所述的数据查询优化方法,其特征在于,所 述三个键值对分别为:映射函数的输入键值对、映射函数的输出键值对和化简函数的输入键值对,其中,各键值对的结构为由键key和其相对应的值value构成的键值对。 

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201310306838.9/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top