[发明专利]数据库执行哈希连接的方法以及装置在审
| 申请号: | 202110181601.7 | 申请日: | 2021-02-10 |
| 公开(公告)号: | CN113297209A | 公开(公告)日: | 2021-08-24 |
| 发明(设计)人: | 胥平勇 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2453;G06F16/2455 |
| 代理公司: | 北京智信禾专利代理有限公司 11637 | 代理人: | 赵杰 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据库 执行 连接 方法 以及 装置 | ||
1.一种数据库执行哈希连接的方法,包括:
获取为哈希连接构建的哈希表的数据量;
通过将所述哈希表的数据量与多个探测模式分别对应的表数据量范围比较,选择所述哈希表对应的探测模式,所述多个探测模式单次探测扫描的数据量不同;
利用选择的探测模式对哈希表执行哈希连接的探测。
2.根据权利要求1所述的方法,所述多个探测模式包括:逐条探测模式及攒批探测模式。
3.根据权利要求2所述的方法,在选择的探测模式为逐条探测模式的情况下,所述利用选择的探测模式对哈希表执行哈希连接的探测,包括:
从驱动表获取一条未扫描过的数据,该条数据成为已扫描过的数据;
根据所述一条数据的关联键,在哈希表中查找到匹配的数据行存下来;
根据查找到的数据行的行号获取需要的列的数据;
判断所述驱动表是否存在未扫描过的数据,如果存在,返回到所述从驱动表获取一条未扫描过的数据的步骤。
4.根据权利要求2所述的方法,在选择的探测模式为攒批探测模式的情况下,所述利用选择的探测模式对哈希表执行哈希连接的探测,包括:
从驱动表获取一条未扫描过的数据,该条数据成为已扫描过的数据;
如果所述驱动表不存在未扫描过的数据,判断是否还有存下来的行号未获取需要的列,如果有,根据存下来的行号获取需要的列的数据;
根据所述一条数据的关联键,在哈希表中查找到匹配的数据行存下来;
判断本次探测扫描数据累计的条数是否达到攒批探测模式对应的预设攒批阈值;
如果否,重新进入所述从驱动表获取一条未扫描过的数据的步骤;
如果是,根据本次探测查找到的数据行的行号获取需要的列的数据;
判断所述驱动表是否存在未扫描过的数据,如果存在,通过返回到所述从驱动表获取一条未扫描过的数据的步骤进入下一次探测扫描。
5.根据权利要求1所述的方法,还包括:
设置多个探测模式分别对应的表数据量范围的初值;
获取为哈希连接构建的哈希表样本的数据量;
通过将所述哈希表样本的数据量与多个探测模式分别对应的表数据量范围比较,选择所述哈希表样本对应的探测模式,所述多个探测模式单次探测扫描的数据量不同;
在利用选择的探测模式对哈希表样本执行哈希连接的探测时,采集表示哈希连接性能的性能数据;
根据采集的性能数据调整一个或多个探测模式分别对应的表数据量范围。
6.根据权利要求5所述的方法,还包括:
在所述哈希表样本的数据量未落入所述多个探测模式分别对应的表数据量范围的情况下,从所述多个探测模式中随机选择对应的探测模式作为选择的探测模式。
7.一种数据库执行哈希连接的装置,包括:
数据量获取模块,被配置为获取为哈希连接构建的哈希表的数据量;
模式选择模块,被配置为通过将所述哈希表的数据量与多个探测模式分别对应的表数据量范围比较,选择所述哈希表对应的探测模式,所述多个探测模式单次探测扫描的数据量不同;
探测执行模块,被配置为利用选择的探测模式对哈希表执行哈希连接的探测。
8.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:
获取为哈希连接构建的哈希表的数据量;
通过将所述哈希表的数据量与多个探测模式分别对应的表数据量范围比较,选择所述哈希表对应的探测模式,所述多个探测模式单次探测扫描的数据量不同;
利用选择的探测模式对哈希表执行哈希连接的探测。
9.一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现权利要求1至6任意一项所述数据库执行哈希连接的方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110181601.7/1.html,转载请声明来源钻瓜专利网。





