[发明专利]一种非等值关联子查询的优化方法和系统有效
申请号: | 201810097136.7 | 申请日: | 2018-01-31 |
公开(公告)号: | CN108874849B | 公开(公告)日: | 2020-12-25 |
发明(设计)人: | 何文婷;程学旗;郑天祺;张志斌;郭嘉丰;赵鹏 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F16/2453 | 分类号: | G06F16/2453 |
代理公司: | 北京律诚同业知识产权代理有限公司 11006 | 代理人: | 祁建国;梁挥 |
地址: | 100080 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 等值 关联 查询 优化 方法 系统 | ||
1.一种非等值关联子查询的优化方法,其特征在于,包括:
步骤1、获取关联子查询的外表关联列的取值集;
步骤2、根据该关联子查询中操作符的类型和该取值集,建立该关联子查询的外表关联列到内表关联列分区的映射关系;
步骤3、根据该内表关联列分区,得到分区集合,以对该关联子查询的内表进行分区,同时依据该关联子查询中内表的查询聚合函数,获取关联子查询在各分区的中间结果状态信息;
步骤4、根据该映射关系,遍历该外表关联列,通过聚合对应分区集的中间结果状态信息,得到外表中各关联列对应的子查询结果;
其中,该步骤2还包括:
步骤21、依据该关联子查询中操作符的类型和外表关联列的取值集构建自动合并分区树,并通过该自动合并分区树,建立该映射关系,其中该自动合并分区树的每个叶子节点对应一个分区,集合该分区,作为内表关联列分区。
2.如权利要求1所述的非等值关联子查询的优化方法,其特征在于,该步骤2还包括:
若该操作符为不等于操作,则根据外表关联列的取值数量k,将该内表划分为k+1个分区,并将各外表关联列的取值对应到除自身以外的k个分区,作为该映射关系;
若该操作符为比较操作,则根据外表关联列的取值数量k,将该内表划分为k+1个分区,并将外表关联列的取值根据该比较操作符对应到相应分区,作为该映射关系;
若该操作符为集合操作,则根据外表关联列的取值的最大公约数,将该内表划分为n+1个分区,并将各关联列的取值根据该集合操作符对应到相应分区,作为该映射关系,其中n为该最大公约数。
3.如权利要求1所述的非等值关联子查询的优化方法,其特征在于,步骤3中,若该查询聚合函数为Avg,则该中间结果状态信息为Sum+count;若该查询聚合函数为Sum/max/min/count,则该中间结果状态信息为Sum/max/min/count。
4.如权利要求1所述的非等值关联子查询的优化方法,其特征在于,该步骤4还包括:循环处理外表与内表的该子查询结果的相关判断,获得该关联子查询的最终结果。
5.一种非等值关联子查询的优化系统,其特征在于,包括:
分区映射模块,用于获取关联子查询的外表关联列的取值,将取值集合为取值集,并根据该关联子查询中操作符的类型和该取值集,建立该关联子查询的外表关联列到内表关联列分区的映射关系;
结果合并模块,用于根据该映射关系,对该关联子查询的内表进行分区,同时依据该关联子查询中内表的查询聚合函数,获取关联子查询在各分区的中间结果状态信息,并根据该映射关系,遍历该外表关联列,通过聚合各分区的中间结果状态信息,得到外表中各关联列对应的子查询结果;
其中,该分区映射模块还包括:依据该关联子查询中操作符的类型和外表关联列的取值集构建自动合并分区树,并通过该自动合并分区树,确定所有的分区,建立该映射关系,其中该自动合并分区树的每个叶子节点对应一个分区,集合该分区,作为内表关联列分区。
6.如权利要求5所述的非等值关联子查询的优化系统,其特征在于,该分区映射模块还包括:
若该操作符为不等于操作,则根据外表关联列的取值数量k,将该内表划分为k+1个分区,并将各外表关联列的取值对应到除自身以外的k个分区,作为该映射关系;
若该操作符为比较操作,则根据外表关联列的取值数量k,将该内表划分为k+1个分区,并将外表关联列的取值根据该比较操作符对应到相应分区,作为该映射关系;
若该操作符为集合操作,则根据外表关联列的取值的最大公约数,将该内表划分为n+1个分区,并将各关联列的取值根据该集合操作符对应到相应分区,作为该映射关系,其中n为该最大公约数。
7.如权利要求5所述的非等值关联子查询的优化系统,其特征在于,结果合并模块中,若该查询聚合函数为Avg,则该中间结果状态信息为Sum+count;若该查询聚合函数为Sum/max/min/count,则该中间结果状态信息为Sum/max/min/count。
8.如权利要求5所述的非等值关联子查询的优化系统,其特征在于,该结果合并模块还包括:循环处理外表与内表的该子查询结果的相关判断,获得该关联子查询的最终结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810097136.7/1.html,转载请声明来源钻瓜专利网。