一种哈希连接算子间数据传递的方法及装置制造方法及图纸

技术编号:10106554 阅读:217 留言:0更新日期:2014-06-01 21:04
本发明专利技术实施例涉及数据库技术领域,公开了一种哈希连接算子间数据传递的方法及装置,该方法包括连接外表和预先生成的哈希表;根据所述外表更新所述哈希表,获得更新后的哈希表;检测是否存在下一个外表;若检测到存在所述下一个外表,则连接所述下一个外表和所述更新后的哈希表。实施本发明专利技术实施例,可以在哈希连接算子间以哈希表的方式进行数据传递,提高了数据库的查询性能。

【技术实现步骤摘要】
一种哈希连接算子间数据传递的方法及装置
本专利技术涉及数据库
,具体涉及一种哈希连接算子间数据传递的方法及装置。
技术介绍
SQL(StructuredQueryLanguage,结构化查询语言)中的连接语句可以将数据库中的两个或多个表连接起来,且哈希连接是大多数数据库最常用的连接算法,哈希连接利用哈希表实现两个或多个表的等值连接,其原理为:构建哈希表,即在要进行连接的两个表中,选取元组较少的一个表(又称内表),将其中的元组采用某个哈希函数和某种冲突解决方法构建哈希表;探测哈希表,即选取两个表中元组较多的表作为探测表(又称外表),取探测表中的每一个元组到构建好的哈希表中进行哈希查找,找到能够实现等值连接的元组;输出,即如果探测表中的某个元组与哈希表中的某个元组满足等值连接的条件,则将它们进行连接并输出。现有的哈希连接实现中,哈希连接算子之间通过元组的方式进行数据传递,这种通过元组进行数据传递的方式会导致连接后的元组再次组成哈希表的情况,这严重影响了数据库的查询性能。
技术实现思路
本专利技术实施例公开了一种哈希连接算子间数据传递的方法及装置,用于解决现有的哈希连接算子间以元组的方式进行数据传递而造成数据库查询性能降低的问题。本专利技术实施例第一方面提供了一种哈希连接算子间数据传递的方法,所述方法包括:连接外表和预先生成的哈希表;根据所述外表更新所述哈希表,获得更新后的哈希表;检测是否存在下一个外表;若检测到存在所述下一个外表,则连接所述下一个外表和所述更新后的哈希表。在本专利技术实施例第一方面的第一种可能的实现方式中,所述连接外表和预先生成的哈希表之前,所述方法还包括:生成哈希表。结合本专利技术实施例第一方面或本专利技术实施例第一方面的第一种可能的实现方式,在本专利技术实施例第一方面的第二种可能的实现方式中,所述连接外表和预先生成的哈希表包括:获取所述外表中的任意一条元组;探测所述哈希表中是否存在能够与所述外表中的任意一条元组进行等值连接的元组;若探测出所述哈希表中存在能够与所述外表中的任意一条元组进行等值连接的元组,则将所述哈希表中的所述元组与所述外表中的任意一条元组连接并生成连接元组,其中,所述连接元组包括用于识别所述连接元组的标识信息;将所述连接元组插入所述哈希表。结合本专利技术实施例第一方面的第二种可能的实现方式,在本专利技术实施例第一方面的第三种可能的实现方式中,所述根据所述外表更新所述哈希表,获得更新后的哈希表包括:判断所述外表中是否还存在未探测所述哈希表的元组;若判断出所述外表中不存在未探测所述哈希表的元组,则删除所述哈希表中不包括所述标识信息的元组。结合本专利技术实施例第一方面,在本专利技术实施例第一方面的第四种可能的实现方式中,所述方法还包括:若检测出不存在所述下一个外表,则输出所述更新后的哈希表。本专利技术实施例第二方面提供了一种哈希连接算子间数据传递的装置,所述装置包括:连接单元,用于连接外表和预先生成的哈希表;更新单元,用于根据所述外表更新所述哈希表,获得更新后的哈希表;检测单元,用于检测是否存在下一个外表;所述连接单元,还用于在所述检测单元检测到存在所述下一个外表时,连接所述下一个外表和所述更新后的哈希表。在本专利技术实施例第二方面的第一种可能的实现方式中,所述装置还包括:生成单元,用于生成哈希表。结合本专利技术实施例第二方面或本专利技术实施例第二方面的第一种可能的实现方式,在本专利技术实施例第二方面的第二种可能的实现方式中,所述连接单元包括获取子单元、探测子单元、连接子单元以及插入子单元,其中:所述获取子单元,用于获取所述外表中的任意一条元组;所述探测子单元,用于探测所述哈希表中是否存在能够与所述外表中的任意一条元组进行等值连接的元组;所述连接子单元,用于在所述探测子单元探测出所述哈希表中存在能够与所述外表中的任意一条元组进行等值连接的元组时,将所述哈希表中的元组与所述外表中的任意一条元组连接并生成连接元组,其中,所述连接元组包括用于识别所述连接元组的标识信息;所述插入子单元,用于将所述连接元组插入所述哈希表。结合本专利技术实施例第二方面的第二种可能的实现方式,在本专利技术实施例第二方面的第三种可能的实现方式中,所述更新单元包括判断子单元以及删除子单元,其中:所述判断子单元,用于判断所述外表中是否还存在未探测所述哈希表的元组;所述删除子单元,用于在所述判断子单元判断出所述外表中不存在未探测所述哈希表的元组时,删除所述哈希表中不包括所述标识信息的元组。结合本专利技术实施例第二方面,在本专利技术实施例第二方面的第四种可能的实现方式中,所述装置还包括:输出单元,用于在所述检测单元检测出不存在所述下一个外表时,输出所述更新后的哈希表。实施本专利技术实施例,具有如下有益效果:连接外表和预先生成的哈希表并更新哈希表,若检测到还存在下一个外表,则连接下一个外表和更新后的哈希表,可见,本专利技术实施例中哈希连接算子之间是以哈希表的方式进行数据传递的,这种数据传递的方式提高了数据库的查询性能。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例公开的一种哈希连接算子间数据传递的方法的流程示意图;图2是本专利技术实施例公开的另一种哈希连接算子间数据传递的方法的流程示意图;图3是本专利技术实施例公开的一种生成哈希表的流程示意图;图4是本专利技术实施例公开的一种连接外表和哈希表的流程示意图;图5是本专利技术实施例公开的一种更新后的哈希表的结构示意图;图6是本专利技术实施例公开的一种哈希连接算子间数据传递的装置的结构示意图;图7是本专利技术实施例公开的另一种哈希连接算子间数据传递的装置的结构示意图;图8是本专利技术实施例公开的又一种哈希连接算子间数据传递的装置的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供了一种哈希连接算子间数据传递的方法及装置,可以在哈希连接算子间以哈希表的方式进行数据传递,提高了数据库的查询性能。以下分别进行详细说明。请参阅图1,图1是本专利技术实施例公开的一种哈希连接算子间数据传递的方法的流程示意图。其中,图1所示的方法可以应用于多媒体数据库、移动数据库、空间数据库、信息检索系统、分布式信息检索系统以及专家决策系统等,本专利技术实施例不做限定。如图1所示,该方法可以包括以下步骤:S101、连接外表和预先生成的哈希表。连接(join)是关系数据库中最重要的查询,用于根据两个或多个表中的列之间的关系从两个或多个表中查询结果,且哈希连接是比较常用的一种两个或多个表在做表连接时主要依靠哈希运算来得到连接结果集的表连接算法。进行哈希连接的两个或多个表可以分为两类:内表和外表,其中,内表是两个或多个表中的小表且是用于生成哈希表的表,剩余的表是不需要生成哈希表的外表,又称之为探测表。其中,生成哈希表的方法可以包括直接定址法、数字分析法、平方取中本文档来自技高网...
一种哈希连接算子间数据传递的方法及装置

【技术保护点】

【技术特征摘要】
1.一种哈希连接算子间数据传递的方法,其特征在于,包括:连接外表和预先生成的哈希表;根据所述外表更新所述哈希表,获得更新后的哈希表;检测是否存在下一个外表;若检测到存在所述下一个外表,则连接所述下一个外表和所述更新后的哈希表;其中,所述连接外表和预先生成的哈希表包括:获取所述外表中的任意一条元组;探测所述哈希表中是否存在能够与所述外表中的任意一条元组进行等值连接的元组;若探测出所述哈希表中存在能够与所述外表中的任意一条元组进行等值连接的元组,则将所述哈希表中的所述元组与所述外表中的任意一条元组连接并生成连接元组,其中,所述连接元组包括用于识别所述连接元组的标识信息;将所述连接元组插入所述哈希表。2.如权利要求1所述的方法,其特征在于,所述连接外表和预先生成的哈希表之前,所述方法还包括:生成哈希表。3.如权利要求1所述的方法,其特征在于,所述根据所述外表更新所述哈希表,获得更新后的哈希表包括:判断所述外表中是否还存在未探测所述哈希表的元组;若判断出所述外表中不存在未探测所述哈希表的元组,则删除所述哈希表中不包括所述标识信息的元组。4.如权利要求1所述的方法,其特征在于,所述方法还包括:若检测出不存在所述下一个外表,则输出所述更新后的哈希表。5.一种哈希连接算子间数据传递的装置,其特征在于,包括:连接单元,用于连接外表和预先生成的哈希表;更新单元,用于根据所述外表...

【专利技术属性】
技术研发人员:刘辉军王传廷
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1