[发明专利]数据库执行哈希连接的方法以及装置在审
| 申请号: | 202110181601.7 | 申请日: | 2021-02-10 |
| 公开(公告)号: | CN113297209A | 公开(公告)日: | 2021-08-24 |
| 发明(设计)人: | 胥平勇 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2453;G06F16/2455 |
| 代理公司: | 北京智信禾专利代理有限公司 11637 | 代理人: | 赵杰 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据库 执行 连接 方法 以及 装置 | ||
本说明书实施例提供数据库执行哈希连接的方法以及装置,其中所述方法包括:获取为哈希连接构建的哈希表的数据量;通过将所述哈希表的数据量与多个探测模式分别对应的表数据量范围比较,选择所述哈希表对应的探测模式,所述多个探测模式单次探测扫描的数据量不同;利用选择的探测模式对哈希表执行哈希连接的探测。
技术领域
本说明书实施例涉及计算机技术领域,特别涉及数据库执行哈希连接的方法。本说明书一个或者多个实施例同时涉及数据库执行哈希连接的装置,计算设备,以及计算机可读存储介质。
背景技术
哈希连接(hash join),是在数据库中建立多张表之间的关系的操作,不管是传统的关系型数据库,还是大数据领域的数据仓库中,特别是OLAP里,都是常见的基础操作。哈希连接对一个表构建哈希表,扫描另一个表的数据与哈希表比对,从而探测出二者的连接。例如,一个针对订票的商业系统,有两张表及各自字段:订单表(会员号,订单时间,订单详情)和会员表(会员号,会员名称,会员时间),对提交订单的会员,将订单表和会员表根据会员号关联时,就是一种连接操作。
由于哈希连接是数据库处理常见的基础操作,如何提高哈希连接的性能是个需要解决的重要问题。
发明内容
有鉴于此,本说明书实施例提供了一种数据库执行哈希连接的方法。本说明书一个或者多个实施例同时涉及一种数据库执行哈希连接的装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
根据本说明书实施例的第一方面,提供了一种数据库执行哈希连接的方法,包括:获取为哈希连接构建的哈希表的数据量;通过将所述哈希表的数据量与多个探测模式分别对应的表数据量范围比较,选择所述哈希表对应的探测模式,所述多个探测模式单次探测扫描的数据量不同;利用选择的探测模式对哈希表执行哈希连接的探测。
可选地,所述多个探测模式包括:逐条探测模式及攒批探测模式。
可选地,在选择的探测模式为逐条探测模式的情况下,所述利用选择的探测模式对哈希表执行哈希连接的探测,包括:从驱动表获取一条未扫描过的数据,使该条数据成为已扫描过的数据;根据所述一条数据的关联键,在哈希表中查找到匹配的数据行存下来;根据查找到的数据行的行号获取需要的列的数据;判断所述驱动表是否存在未扫描过的数据,如果存在,返回到所述从驱动表获取一条未扫描过的数据的步骤。
可选地,在选择的探测模式为攒批探测模式的情况下,所述利用选择的探测模式对哈希表执行哈希连接的探测,包括:从驱动表获取一条未扫描过的数据,使该条数据成为已扫描过的数据;如果所述驱动表不存在未扫描过的数据,判断是否还有存下来的行号未获取需要的列,如果有,根据存下来的行号获取需要的列的数据;根据所述一条数据的关联键,在哈希表中查找到匹配的数据行存下来;判断本次探测扫描数据累计的条数是否达到攒批探测模式对应的预设攒批阈值;如果否,重新进入所述从驱动表获取一条未扫描过的数据的步骤;如果是,根据本次探测查找到的数据行的行号获取需要的列的数据;判断所述驱动表是否存在未扫描过的数据,如果存在,通过返回到所述从驱动表获取一条未扫描过的数据的步骤进入下一次探测扫描。
可选地,所述方法还包括:设置多个探测模式分别对应的表数据量范围的初值;获取为哈希连接构建的哈希表样本的数据量;通过将所述哈希表样本的数据量与多个探测模式分别对应的表数据量范围比较,选择所述哈希表样本对应的探测模式,所述多个探测模式单次探测扫描的数据量不同;在利用选择的探测模式对哈希表样本执行哈希连接的探测时,采集表示哈希连接性能的性能数据;根据采集的性能数据调整一个或多个探测模式分别对应的表数据量范围。
可选地,所述方法还包括:在所述哈希表样本的数据量未落入所述多个探测模式分别对应的表数据量范围的情况下,从所述多个探测模式中随机选择对应的探测模式作为选择的探测模式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110181601.7/2.html,转载请声明来源钻瓜专利网。





