数据处理方法及设备的制造方法

文档序号:8361450阅读:313来源:国知局
数据处理方法及设备的制造方法
【技术领域】
[0001]本发明涉及计算机技术领域,尤其涉及一种数据处理方法及设备。
【背景技术】
[0002]数据库如SQL (Structured Query Language,结构化查询语言)中的连接语句可以将该数据库中的两个或多个表组合起来。哈希连接(hash join)算法是大多数数据库中很常用的连接算法,可以利用哈希表实现连接。
[0003]和归并连接(merge join)算法和循环嵌套连接(nestloop join)算法这两种常用的连接算法相比,哈希连接算法由于仅需对两张表即构建表和探测表各扫描一次而效率较高。然而,由于探测表中元组的哈希值随机分布,相邻数据例如元组的哈希值可能相差很大,这样,当按顺序对探测表中的每个数据在其对应的构建表上查找匹配时,相邻数据在构建表中对应的哈希值很可能相差很多,相当于是对构建表的随机访问,因此,哈希连接算法可能导致CPU cache (高速缓冲存储器)命中率较低。
[0004]由于CPU cache容量较小,只缓存最近使用过的数据,因此,这种对构建表的随机访问难以直接命中CPU cache缓存的数据。这样,传统的哈希连接算法无法利用到CPUcache的速度优势,只能频繁的从内存获取数据。虽然内存支持随机访问,但速度和从CPUcache直接获取有数量级上的差异,导致查询效率较低。

【发明内容】

[0005]抟术问是页
[0006]有鉴于此,本发明要解决的技术问题是如何提高哈希连接算法的查询效率。
_7] 解决方案
[0008]为了解决上述技术问题,根据本发明一实施例,提供了一种数据处理方法,包括:
[0009]将对应于探测表的数据分别进行哈希计算,得到哈希值,根据所得到的哈希值,将所述数据进行重组并存储到所述探测表中,其中,所述探测表为欲进行哈希连接中的两个表中数据较多的表;
[0010]利用哈希连接算法将所述探测表中的数据与构建表中的数据进行连接,其中,所述构建表为欲进行哈希连接中的两个表中数据较少的表。
[0011]对于上述数据处理方法,在一种可能的实现方式中,所述将对应于探测表的数据分别进行哈希计算,得到哈希值,根据所得到的哈希值,将所述数据进行重组并存储到所述探测表中,包括:
[0012]在所述探测表中的数据存入数据库时,对待存入所述探测表中的数据分别进行哈希计算,得到哈希值,根据所得到的哈希值,将所述数据进行重组并存储到所述探测表中。
[0013]对于上述数据处理方法,在一种可能的实现方式中,所述将对应于探测表的数据分别进行哈希计算,得到哈希值,根据所得到的哈希值,将所述数据进行重组并存储到所述探测表中,包括:
[0014]在所述探测表首次进行哈希连接时,对所述探测表中的数据分别进行哈希计算,得到哈希值,根据所得到的哈希值,将所述数据进行重组并存储到所述探测表中。
[0015]对于上述数据处理方法,在一种可能的实现方式中,所述将对应于探测表的数据分别进行哈希计算,得到哈希值,根据所得到的哈希值,将所述数据进行重组并存储到所述探测表中,包括:
[0016]将对应于所述探测表的数据分别进行哈希计算,得到哈希值,根据所得到的哈希值,将哈希值相同的所述数据在所述探测表中相邻存储。
[0017]对于上述数据处理方法,在一种可能的实现方式中,所述利用哈希连接算法将所述探测表中的数据与构建表中的数据进行连接,包括:
[0018]将所述探测表中的数据按存储顺序计算哈希值;
[0019]根据所计算出的哈希值,按照预定的规则在所述构建表中查找匹配;
[0020]将所述探测表中的数据与所述构建表中所查找匹配到的数据进行连接。
[0021]对于上述数据处理方法,在一种可能的实现方式中,在所述对探测表中的数据分别进行哈希计算,得到哈希值之后,还包括:
[0022]将所述得到的哈希值进行存储;
[0023]所述利用哈希连接算法将所述探测表中的数据与构建表中的数据进行连接,包括:
[0024]根据所存储的哈希值,将所述探测表中的数据以存储顺序按照预定的规则在所述构建表中查找匹配;
[0025]将所述探测表中的数据与所述构建表中所查找匹配到的数据进行连接。
[0026]为了解决上述技术问题,根据本发明另一实施例,提供一种数据处理设备,包括:
[0027]重组模块,用于将对应于探测表的数据分别进行哈希计算,得到哈希值,根据所得到的哈希值,将所述数据进行重组并存储到所述探测表中,其中,所述探测表为欲进行哈希连接中的两个表中数据较多的表;
[0028]连接模块,与所述重组模块连接,用于利用哈希连接算法将所述探测表中的数据与构建表中的数据进行连接,其中,所述构建表为欲进行哈希连接中的两个表中数据较少的表。
[0029]对于上述数据处理设备,在一种可能的实现方式中,所述重组模块用于在所述探测表中的数据存入数据库时,对待存入所述探测表中的数据分别进行哈希计算,得到哈希值,根据所得到的哈希值,将所述数据进行重组并存储到所述探测表中。
[0030]对于上述数据处理设备,在一种可能的实现方式中,所述重组模块用于在所述探测表首次进行哈希连接时,对所述探测表中的数据分别进行哈希计算,得到哈希值,根据所得到的哈希值,将所述数据进行重组并存储到所述探测表中。
[0031]对于上述数据处理设备,在一种可能的实现方式中,所述重组模块用于:
[0032]将对应于探测表的数据分别进行哈希计算,得到哈希值,根据所得到的哈希值,将哈希值相同的所述数据在所述探测表中相邻存储。
[0033]对于上述数据处理设备,在一种可能的实现方式中,所述连接模块包括:
[0034]计算单元,用于将所述探测表中的数据按存储顺序计算哈希值;
[0035]查找单元,与所述计算单元连接,用于根据所述计算单元所计算出的哈希值,按照预定的规则在所述构建表中查找匹配;
[0036]连接单元,与所述查找单元连接,用于将所述探测表中的数据与所述查找单元在所述构建表中所查找匹配到的数据进行连接。
[0037]对于上述数据处理设备,在一种可能的实现方式中,所述重组模块还用于将所述得到的哈希值进行存储;
[0038]所述连接模块用于根据所述重组模块所存储的哈希值,将所述探测表中的数据以存储顺序按照预定的规则在所述构建表中查找匹配;以及用于将所述探测表中的数据与所述构建表中所查找匹配到的数据进行连接。
[0039]有益.效果
[0040]通过本发明实施例提供的数据处理方法及设备,首先将探测表中的数据按照计算得到的哈希值进行重组,而不是随机分布,从而使得在利用哈希连接算法进行查询时,把探测表中数据以存储顺序按照预定的规则逐个在哈希表中查找匹配,将探测表中的数据与构建表中所查找匹配到的数据进行连接。这样,能够让哈希表中相同哈希值的区域连续访问,提高了 CPU cache命中率,从而提高了查询效率。
【附图说明】
[0041]包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本发明的示例性实施例、特征和方面,并且用于解释本发明的原理。
[0042]图1示出根据本发明一实施例的数据处理方法的流程图;
[0043]图2示出根据本发明另一实施例的数据处理方法的流程图;
[0044]图3示出根据本发明一实施例的数据重组方法的应用场景示意图;
[0045]图4示出根据本发明一实施例的数据处理设备的结构框图;
[0046]图5示出根据本发明另一实施例的数据处理设备的结构框图;
[0047]图6示出根据本发明又一实施例的数据处理设备的结构框图。
【具体实施方式】
[0048]以下将参考附图详细说明本发明的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
[0049]在这里专用的词“示例性”意为“用作例子、实施例
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1