[发明专利]一种基于分组的全局多查询优化方法有效

专利信息
申请号: 201710242819.2 申请日: 2017-04-14
公开(公告)号: CN107133281B 公开(公告)日: 2020-12-15
发明(设计)人: 吴勇;陈岭;林言;钟宏泽 申请(专利权)人: 浙江鸿程计算机系统有限公司
主分类号: G06F16/2453 分类号: G06F16/2453;G06F16/2452
代理公司: 杭州之江专利事务所(普通合伙) 33216 代理人: 张慧英
地址: 310053 浙江省*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 分组 全局 查询 优化 方法
【权利要求书】:

1.一种基于分组的全局多查询优化方法,其特征在于,包括多查询建模阶段和多查询优化阶段,如下所示:

1)多查询建模阶段:对查询语句进行签名计算,得到每一个查询的精简化表示,记为签名;具体步骤如下:

1.1)对给定的n条查询语句Q={q1,q2,...,qn}进行解析,采用JFlex进行词法解析得到词法解析结果,采用CUP对词法解析结果进行语法解析;

1.2)采用基于火山模型的查询优化器对n条查询语句Q={q1,q2,...,qn}进行计划枚举,得到每一个查询语句qi对应的j个计划Pi={pi1,pi2,...,pij};

1.3)遍历计划集合Pi={pi1,pi2,...,pij}中的每一个计划pij,并进行任务切分,得到每一个计划pij对应的k个任务Tij={tij1,tij2,...,tijk};

1.4)通过五元组签名来表示任务,记为任务签名,进而通过任务与计划、计划与查询之间的关系来表示计划与查询,分别记为计划签名和查询签名;具体如下:

1.4.1)输入查询计划的集合,每个查询计划构成的树按照规则被划分为若干子树,每个子树是一个任务;

1.4.2)对任务中的节点进行后续遍历,为每一个任务计算对应签名,并判断该任务是否在之前的计算过程中出现过;若出现过,则直接使用对应的任务签名,否则为该任务创建新的任务ID,并计算任务签名;

1.4.3)签名是一个五元组Ge=[Sign;De;Se;Be;torder],其中Sign代表标识,包括该任务归属的查询ID、计划ID和该任务的ID;De代表任务中的数据表集合;Se代表任务中的选择谓词集合;Be代表任务中的非选择谓词集合;torder代表在后续遍历计划时该任务的顺序编号;

1.4.4)初始化Sign和torder的值,Sign根据当前处理任务归属的查询ID、计划ID和该任务的ID决定,所有ID均是从0开始自增的整数;torder是在后续遍历计划时该任务的顺序编号,编号是从0开始自增的整数;

1.4.5)根据任务内的不同操作计算对应签名:若节点类型为扫描操作节点时,将其对应的数据表添加到De中,将其对应的选择谓词添加到Se中;若节点类型为连接操作节点、聚合操作节点或者排序操作节点时,将其对应的谓词添加到Be中;若节点类型为数据传输操作节点,跳过并继续;

1.4.6)依次构建计划签名和查询签名:通过计划与任务的一对多关系,将归属于同一计划的任务签名进行组合,得到计划签名pije={tij1e,tij2e,...,tijke};通过查询与计划的一对多关系,将归属于同一查询的计划签名进行组合,得到查询签名qie={pi1e,pi2e,...,pije};

2)多查询优化阶段:根据签名对查询语句进行分组,建立查询组;并采用基于启发式算法的多查询优化算法,对每一分组内的查询计划进行代价估算来进行计划选择,并将每一分组选择的计划进行合并,得到多个全局计划;具体步骤如下:

2.1)初始化查询所在的分组:对给定的n条查询语句Q={q1,q2,...,qn},将每个查询分为一组,得到n个分组g1,g2,...,gn

2.2)建立任务到查询的映射关系,为任务ti所包含的所有mi个查询建立集合并可得到k个不同的查询集合构成的集合Qg={Q1,Q2,...,Qk};

2.3)根据映射关系,利用基于路径压缩的并查集算法进行分组,对n个查询Q={q1,q2,...,qn}所代表的n个分组g1,g2,...,gn进行合并;

2.4)为步骤2.3)合并得到的每一个分组创建查询集合容器,并将同组的多个查询逐一加入,得到d个查询分组G={g1,g2,...,gd};

2.5)根据分组结果,利用HA算法为每一组查询进行计划选择:对于每一个分组g1,g2,...,gd,输入所有查询,通过对搜索空间内的计划进行代价估算来选择计划,并引入上界函数h对搜索空间进行剪枝;所述步骤2.5)利用HA算法进行计划选择的方法如下:

2.5.1)初始化用于代价估算的信息,通过读取配置文件中的各项参数,包括磁盘速率、内存大小;

2.5.2)在输入查询包含的所有任务中查找等价任务集合,等价任务的签名中包含相同任务的ID;

2.5.3)初始化代价上界:通过计算每一个任务的代价,累加获得每一个计划的代价,通过获得对每一个查询所有计划中代价最小的计划,即最优计划,对“最优计划”的代价进行累和,得到初始上界upperbound;

2.5.4)递归搜索,通过启发式代价估算来为每一个查询选择计划:为了让HA算法算法快速收敛,引入一个上界函数h对搜索空间进行剪枝,公式如下:

其中,nq表示包含任务t的查询数量;next是一个函数,可以求得在状态s下需要进行计划选择的查询编号;cost是一个代价函数,通过磁盘读取页数来对任务进行代价估算,通过对任务代价求和来对计划进行代价估算;est_cost函数用于计算未选计划的估计代价;函数通过将任务的代价cost(t)平分到每一个包含该任务的查询,获得该任务的估计代价,进而通过求和获得计划的估计代价;

2.5.5)得到为每一个分组内所有查询选择的计划集合,即

2.6)根据步骤2.5)的结果,对每一分组选择的计划进行自底向上的任务合并:将ci个计划按照其包含公共的任务签名中的torder进行升序排列,并依次将各计划与全局计划合并。

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

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江鸿程计算机系统有限公司,未经浙江鸿程计算机系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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