数据表信息的处理方法及装置与流程

文档序号:12824931阅读:361来源:国知局
数据表信息的处理方法及装置与流程

本申请涉及表连接领域,具体而言,涉及一种数据表信息的处理方法及装置。



背景技术:

在任何数据仓库领域,都有可能面临大数据量表做连接的场景,如会话session和浏览页数pageview表的连接,其开销是很大的,表连接的速度较慢,影响了对大数据量数据表的处理效率。

例如,在现有技术中,当要将大表a与大表b做连接时,需要先选取大表a里的(a1,a2,a3),并计算出相应汇总字段a4的汇总数据,如sum(a4)。

现有方案中的用以实现表连接的程序可以为:

selecta.a1,a.a2,a.a3,sum(a4)astotalsum_a4

fromainnerjoinbona.joincolumn=b.joincolumn

groupbya1,a2,a3,

即先将大表a与大表b中连接字段的数据列相同的数据进行表连接,然后从表连接后的结果集中选取待连接的大表a中的a1列、a2列、以及a3列,将a4列进行加和计算,并将该加和的结果所在的列命名为totalsum_a4列,以a1列、a2列、以及a3列进行分组。

在现有技术中,生成的执行计划会将a表里的joincolumn进行哈希hash,同时带上相应的a1,a2,a3字段,这样会导致内存开销极大。

上述的现有技术中对大数据量表信息处理的方案,开销比较大,且容易发生内存溢出等错误,导致查询失败。

针对上述的现有技术中大数据量表在进行表连接时资源开销大的问题,目前尚未提出有效的解决方案。



技术实现要素:

本申请实施例提供了一种数据表信息的处理方法及装置,以至少解决现有技术中大数据量表在进行表连接时资源开销大的技术问题。

根据本申请实施例的一个方面,提供了一种数据表信息的处理方法,该方法包括:在当前连接的两个数据表的数据量大于预设数据量的情况下,获取所述两个数据表之间的目标连接字段;获取所述两个数据表的第一表中所述目标连接字段对应的数据列;将所述数据列与所述两个数据表的第二表进行表连接,得到第三表;利用所述数据列,将所述第一表和所述第三表进行表连接,得到所述第一表和所述第二表的连接结果。

进一步地,在获取所述两个数据表之间的目标连接字段之前,所述方法还包括:根据接收到的查询请求获取所述两个数据表,其中,所述查询请求中携带有查询字段和汇总字段;在得到所述第一表和所述第二表的连接结果之后,所述方法还包括:按照所述查询字段和所述汇总字段对所述连接结果进行汇总,以得到所述查询请求的查询结果。

进一步地,将所述数据列与所述两个数据表的第二表进行表连接包括:判断所述查询字段的数量是否大于所述目标连接字段的数量;若所述查询字段的数量大于所述目标连接字段的数量,则将所述数据列与所述两个数据表的第二表进行表连接。

进一步地,按照所述查询字段和所述汇总字段对所述连接结果进行汇总,以得到所述查询请求的查询结果包括:按照所述查询字段对所述连接结果进行分组,得到多组信息集合;获取每组信息集合中所述汇总字段的属性值之和,得到所述查询结果。

进一步地,所述汇总字段和所述查询字段具有关联关系,所述关联关系包括一一对应的关系、或者函数关系,其中,所述函数关系用于表示所述查询字段的属性值随所述汇总字段的属性值的变化而变化;所述汇总字段作为所述目标连接字段。

进一步地,将所述数据列与所述两个数据表的第二表进行表连接包括:按照预定表连接方式连接所述数据列和所述第二表,其中,所述预定表连接方式包括内连接方式或外连接方式。

根据本申请实施例的另一方面,还提供了一种数据表信息的处理装置,该装置包括:第一获取单元,用于在当前连接的两个数据表的数据量大于预设数据量的情况下,获取所述两个数据表之间的目标连接字段;第二获取单元,用于获取所述两个数据表的第一表中所述目标连接字段对应的数据列;第一表连接单元,用于将所述数据列与所述两个数据表的第二表进行表连接,得到第三表;第二表连接单元,用于利用所述数据列,将所述第一表和所述第三表进行表连接,得到所述第一表和所述第二表的连接结果。

进一步地,所述装置还包括:接收单元,用于在获取所述两个数据表之间的目标连接字段之前,根据接收到的查询请求获取所述两个数据表,其中,所述查询请求中携带有查询字段和汇总字段;汇总单元,用于在得到所述第一表和所述第二表的连接 结果之后,按照所述查询字段和所述汇总字段对所述连接结果进行汇总,以得到所述查询请求的查询结果。

进一步地,所述第一表连接单元包括:判断模块,用于判断所述查询字段的数量是否大于所述目标连接字段的数量;表连接模块,用于若所述查询字段的数量大于所述目标连接字段的数量,则将所述数据列与所述两个数据表的第二表进行表连接。

进一步地,所述汇总单元包括:分组模块,用于按照所述查询字段对所述连接结果进行分组,得到多组信息集合;获取模块,用于获取每组信息集合中所述汇总字段的属性值之和,得到所述查询结果。

进一步地,所述汇总字段和所述查询字段具有关联关系,所述关联关系包括一一对应的关系、或者函数关系,其中,所述函数关系用于表示所述查询字段的属性值随所述汇总字段的属性值的变化而变化;所述汇总字段作为所述目标连接字段。

进一步地,所述第一表连接单元包括:连接模块,用于按照预定表连接方式连接所述数据列和所述第二表,其中,所述预定表连接方式包括内连接方式或外连接方式。

在本申请实施例中,通过采用在当前连接的两个数据表的数据量大于预设数据量的情况下,获取目标连接字段;再获取两个数据表的第一表中目标连接字段对应的数据列;将数据列与两个数据表的第二表进行表连接,得到第三表;利用数据列,将第一表和第三表进行表连接,得到第一表和第二表的连接结果的方式,通过先将第一表过滤后,将第一表中保留的目标连接字段与第二表进行表连接,得到第三表,然后将第三表与第一表二次表连接,达到了减少大数据量表连接时所需处理的数据量的目的,从而实现了减少具有大数据量的表在进行表连接时的开销的技术效果,进而解决了现有技术中大数据量表在进行表连接时开销大的技术问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的一种数据表信息的处理方法的流程图;以及

图2是根据本申请实施例的一种数据表信息的处理装置的示意图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的 附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例1

根据本申请实施例,提供了一种数据表信息的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

图1是根据本申请实施例的一种数据表信息的处理方法的流程图,如图1所示,该方法包括如下步骤:

步骤s102,在当前连接的两个数据表的数据量大于预设数据量的情况下,获取两个数据表之间的目标连接字段。

步骤s104,获取两个数据表的第一表中目标连接字段对应的数据列。

步骤s106,将数据列与两个数据表的第二表进行表连接,得到第三表。

步骤s108,利用数据列,将第一表和第三表进行表连接,得到第一表和第二表的连接结果。

采用本申请实施例,通过采用在当前连接的两个数据表的数据量大于预设数据量的情况下,获取目标连接字段;再获取两个数据表的第一表中目标连接字段对应的数据列;将数据列与两个数据表的第二表进行表连接,得到第三表;利用数据列,将第一表和第三表进行表连接,得到第一表和第二表的连接结果的方式,通过先将第一表过滤后,将第一表中保留的目标连接字段与第二表进行表连接,得到第三表,然后将第三表与第一表二次表连接,达到了减少大数据量表连接时所需处理的数据量的目的,从而实现了减少具有大数据量的表在进行表连接时的开销的技术效果,进而解决了现 有技术中大数据量表在进行表连接时开销大的技术问题。

上述实施例中的当前连接的两个数据表的数据量大于预设数据量的情况下,则可以将这两个数据表均称之为大表;该两个数据表中均存有目标连接字段,该目标连接字段用于连接两个数据表,例如,两个数据表中都有订单字段,则可以将该订单字段作为目标连接字段进行表连接,可以将两个数据表中的目标连接字段相等的数据集合进行表连接,为了减小表连接时的开销,上述实施例中先将两个数据表中的第一表的非目标连接字段的字段进行过滤,将第一表中的目标连接字段与第二表进行表连接,这样做可以减少空间,同时减小数据表在连接时的开销;并且,可以通过目标连接字段从第一表中通过key键做二次扫描,从而避免了直接将第一表与第二表进行连接并汇总所导致的处理效率低的问题。

可选地,在获取两个数据表之间的目标连接字段之前,该方法还包括:根据接收到的查询请求获取两个数据表,其中,查询请求中携带有查询字段和汇总字段;在得到第一表和第二表的连接结果之后,该方法还包括:按照查询字段和汇总字段对连接结果进行汇总,以得到查询请求的查询结果。

在一个可选的实施例中,上述实施例中的处理方法也可以应用于如下场景中:大表a与大表b做表连接,需要选取大表a里面的a1列、a2列以及a3列,并计算出汇总字段a4的对应的汇总数据,如sum(a4),其中,大表a对应为上述实施例中的第一表,大表b对应为上述实施例中的第二表,语句sum()具有加和或者汇总的作用,上述的a4即为汇总字段。

通过上述实施例,当接收到查询请求时,可以在将第一表的目标连接字段与第二表进行表连接得到第三表之后,然后将第三表与第一表连接,在连接后将按照查询字段进行查询,对汇总字段进行连接结果的汇总,以得到查询结果,从而对两个数据表进行连接且查询和汇总的操作进行了优化,减小了查询和汇总的数据处理量,提高了表连接、查询以及汇总的处理效率。

可选地,将数据列与两个数据表的第二表进行表连接的步骤s106可以包括:判断查询字段的数量是否大于目标连接字段的数量;若查询字段的数量大于目标连接字段的数量,则将数据列与两个数据表的第二表进行表连接。

在上述实施例中,在将第一表和第二表进行连接时,需要对连接的两个表中的查询字段的数量进行判断,当其大于目标连接字段的数量时,将第一表中的目标连接字段对应的数据列与第二表进行表连接,从而节省了大数据量的第一表和第二表进行表连接的哈希hash开销。

上述实施例中的判断出查询字段的数量大于目标连接字段的数量的步骤,是仅选 择第一表的连接列与第二表进行连接过滤的前提条件,这样连接过滤的步骤可以将查询字段所需的字段先过滤掉,通过目标连接字段与第二表进行连接,这样能够实现减小表连接的开销的目的。

可选地,按照查询字段和汇总字段对连接结果进行汇总,以得到查询请求的查询结果包括:按照查询字段对连接结果进行分组,得到多组信息集合;获取每组信息集合中汇总字段的属性值之和,得到查询结果。

在上述实施例中,可以在两个数据表进行表连接之后,对该连接后的数据表进行查询和汇总的操作,在接收到查询请求之后,可以按照该查询字段对连接结果进行分组,从而得到多组信息集合的查询结果,并可以获取每组信息集合中的汇总字段的属性值之和,进而得到汇总的值,即得到查询结果,通过上述实施例,可以实现快速准确的获得表连接之后的查询结果的效果。

可选地,汇总字段和查询字段具有关联关系,关联关系包括一一对应的关系、或者函数关系,其中,函数关系用于表示查询字段的属性值随汇总字段的属性值的变化而变化;汇总字段作为目标连接字段。

在上述实施例中,函数关系可以包括线性关系、指数关系等,查询字段的属性值与汇总字段的属性值之间存在该函数关系,例如,该函数关系为线性关系时,线性关系式可以为y=kx+b,其中,y可以为查询字段的属性值,x可以为汇总字段的属性值,k和b为常数,此时,查询字段的属性值y可以随着汇总字段的属性值x的变化而相应地变化。

通过上述实施例,第一表中的目标连接字段与关键字段具有一一对应关系、或者具有的函数关系,该函数关系也可以理解为关键字段对应的数据列的值决定了各个关键字段对应的数据列的值。

可选地,将数据列与两个数据表的第二表进行表连接包括:按照预定表连接方式连接数据列和第二表,其中,预定表连接方式包括内连接方式或外连接方式。

上述实施例中的表连接可以采用内连接的方式和外连接的方式,并且,连接可以使用结构化查询sql(structuredquerylanguage)语言来实现。

对比于现有方案中的大表连接方案,开销比较大,且容易发生内存溢出等错误,导致查询失败,本专利通过仅选取相应的连接键的方式,再从原大表(即上述第一表)里通过key键做二次扫描,来避免大表连接,在多字段选取的情况下的性能差问题。

在现有技术中,当要将大表a与大表b做连接时,需要先选取大表a里的查询字段对应的数据列(a1,a2,a3),并计算出相应汇总字段a4的汇总数据,如sum(a4)。

通过采用本申请实施例,可以对大表连接后,需要计算出汇总结果(即上述的查询结果),但同时又需要多对一起使用时的方案进行优化,由于在大表连接后,可能会产生数据膨胀的现象,为屏蔽上述数据膨胀的现象,可以通过在对大表连接后,仅记录各个大表的key值,使数据膨胀后不带其它所有需要的列,极大减少空间,在表连接计算好后,由于汇总的行数已明显减少,这时再与原大表进行表连接,便可快速找出需要的列。通过上述实施例,可以减少大表连接时的开销,特别针对汇总计算的查询,可以实现使多列的开销降低的效果。

现有方案中的用以实现表连接的程序可以为:

selecta.a1,a.a2,a.a3,sum(a4)astotalsum_a4

fromainnerjoinbona.joincolumn=b.joincolumn

groupbya1,a2,a3,

即先将大表a与大表b中连接字段的数据列相同的数据进行表连接,然后从表连接后的结果集中选取待连接的大表a中的a1列、a2列、以及a3列,将a4列进行加和计算,并将该加和的结果所在的列命名为totalsum_a4列,以a1列、a2列、以及a3列进行分组。

在现有技术中,生成的执行计划会将a表里的joincolumn进行哈希hash,同时带上相应的a1,a2,a3字段,这样会导致内存开销极大。

本申请实施例中的方法对应的装置,可以包括:

1、输入装置:输入相应的sql查询,或是查询需求,分析其相应的大表连接字段,以及各大表上所需要的字段。

2、判定装置:如果某表是大表,其上面需要的字段包括非表连接字段,那么先去掉其它所有非表连接的字段,选取表连接的关键字段和汇总字段,如将上面的表连接字段joincolumn作为关键字段(即为上述的查询字段),以a4列作为汇总字段,同时要求表连接字段joincolumn在大表a里与a1列,a2列,a3列等选取列属于一一对应关系,或者是表连接字段joincolumn的值,决定了a1列,a2列,a3列的值。

3、转换装置:

a)在判定装置满足后,对原需求进行拆解,先选出相应的大表连接字段,再进行表连接,这样做可以使大表连接时不会附带其它选择列,从而降低了表连接的内存消耗,以达到提高大表连接速度的目的。

b)针对大表连接后的结果,再分别对原大表进行二次连接,需要注意的是,这里 的连接是和本表自己进行连接,所以不会发生数据膨胀(假设前提是大表a里的表连接字段joincolumn与选择列a1列,a2列,a3列一一对应的关系),且是带有过滤filter的io(input/output,输入输出),比上面的直接表连接开销会小很多。

c)最后得出最终大表连接并汇总计算的结果(也可以为上述的查询结果)。

上述实施例可以通过以下sql程序运行实现:

withjoinresultsas(selecta.joincolumnfromainnerjoinbona.joincolumn=b.joincolumn

groupbya.joincolumn)

selecta1,a2,a3,sum(joinresults.a4)astaltalsum_a4

fromainnerjoinjoinresultsona.joincolumn=joinresults.joincolumn

groupbya1,a2,a3

在上述程序中,可以先对大表a(即第一表)获取其中的表连接字段joincolumn,将该表连接字段joincolumn与大表b(即第二表)基于目标连接字段joincolumn对应的数据列进行表连接,然后以该目标连接字段进行分组,得到合并结果集(即第三表),再从大表a中选取a1列、a2列、a3列以及a4列的合并结果sum(a4),将大表a中的上述获取的各个列与大表b连接,也即通过合并结果中的目标关键字段来查询大表a中的各个关键字段对应的a1列、a2列、a3列。

通过上述实施例,可以避免现有技术中的表连接导致的数据膨胀的现象,尤其是具有大数据量的大表与大表间的连接,上述实施例在连接时只选取相应的表连接字段(即上述的目标连接字段)和汇总数据字段(汇总字段),对于其它根据表连接字段派生的相关维度字段(即各个查询字段),经过二次自身查询获得,使其大表连接里的列数明显降低,从而减少内存的占用率,提升大表连接的性能。

实施例2

根据本申请实施例的另一方面,还提供了一种数据表信息的处理装置,图2是根据本申请实施例的一种数据表信息的处理装置的示意图,如图2所示,该处理装置包括:第一获取单元20、第二获取单元40、第一表连接单元60以及第二表连接单元80。

其中,第一获取单元20,用于在当前连接的两个数据表的数据量大于预设数据量的情况下,获取两个数据表之间的目标连接字段。

第二获取单元40,用于获取两个数据表的第一表中目标连接字段对应的数据列。

第一表连接单元60,用于将数据列与两个数据表的第二表进行表连接,得到第三 表。

第二表连接单元80,用于利用数据列,将第一表和第三表进行表连接,得到第一表和第二表的连接结果。

采用本申请实施例,通过采用在当前连接的两个数据表的数据量大于预设数据量的情况下,获取目标连接字段;再获取两个数据表的第一表中目标连接字段对应的数据列;将数据列与两个数据表的第二表进行表连接,得到第三表;利用数据列,将第一表和第三表进行表连接,得到第一表和第二表的连接结果的方式,通过先将第一表过滤后,将第一表中保留的目标连接字段与第二表进行表连接,得到第三表,然后将第三表与第一表二次表连接,达到了减少大数据量表连接时所需处理的数据量的目的,从而实现了减少具有大数据量的表在进行表连接时的开销的技术效果,进而解决了现有技术中大数据量表在进行表连接时开销大的技术问题。

可选地,该装置还包括:接收单元,用于在获取两个数据表之间的目标连接字段之前,根据接收到的查询请求获取两个数据表,其中,查询请求中携带有查询字段和汇总字段;汇总单元,用于在得到第一表和第二表的连接结果之后,按照查询字段和汇总字段对连接结果进行汇总,以得到查询请求的查询结果。

通过上述实施例,当接收到查询请求时,可以在将第一表的目标连接字段与第二表进行表连接得到第三表之后,然后将第三表与第一表连接,在连接后将按照查询字段进行查询,对汇总字段进行连接结果的汇总,以得到查询结果,从而对两个数据表进行连接且查询和汇总的操作进行了优化,减小了查询和汇总的数据处理量,提高了表连接、查询以及汇总的处理效率。

可选地,第一表连接单元包括:判断模块,用于判断查询字段的数量是否大于目标连接字段的数量;表连接模块,用于若查询字段的数量大于目标连接字段的数量,则将数据列与两个数据表的第二表进行表连接。

在上述实施例中,在将第一表和第二表进行连接时,需要对连接的两个表中的查询字段的数量进行判断,当其大于目标连接字段的数量时,将第一表中的目标连接字段对应的数据列与第二表进行表连接,从而节省了大数据量的第一表和第二表进行表连接的哈希hash开销。

上述实施例中的判断出查询字段的数量大于目标连接字段的数量的步骤,是仅选择第一表的连接列与第二表进行连接过滤的前提条件,这样连接过滤的步骤可以将查询字段所需的字段先过滤掉,通过目标连接字段与第二表进行连接,这样能够实现减小表连接的开销的目的。

可选地,汇总单元包括:分组模块,用于按照查询字段对连接结果进行分组,得 到多组信息集合;获取模块,用于获取每组信息集合中汇总字段的属性值之和,得到查询结果。

在上述实施例中,可以在两个数据表进行表连接之后,对该连接后的数据表进行查询和汇总的操作,在接收到查询请求之后,可以按照该查询字段对连接结果进行分组,从而得到多组信息集合的查询结果,并可以获取每组信息集合中的汇总字段的属性值之和,进而得到汇总的值,即得到查询结果,通过上述实施例,可以实现快速准确的获得表连接之后的查询结果的效果。

可选地,汇总字段和查询字段具有关联关系,关联关系包括一一对应的关系、或者函数关系,其中,函数关系用于表示查询字段的属性值随汇总字段的属性值的变化而变化;汇总字段作为目标连接字段。

在上述实施例中,函数关系可以包括线性关系、指数关系等,查询字段的属性值与汇总字段的属性值之间存在该函数关系,例如,该函数关系为线性关系时,线性关系式可以为y=kx+b,其中,y可以为查询字段的属性值,x可以为汇总字段的属性值,k和b为常数,此时,查询字段的属性值y可以随着汇总字段的属性值x的变化而相应地变化。

通过上述实施例,第一表中的目标连接字段与关键字段具有一一对应关系、或者具有的函数关系,该函数关系也可以理解为关键字段对应的数据列的值决定了各个关键字段对应的数据列的值。

可选地,第一表连接单元包括:连接模块,用于按照预定表连接方式连接数据列和第二表,其中,预定表连接方式包括内连接方式或外连接方式。

上述实施例中的表连接可以采用内连接的方式和外连接的方式,并且,连接可以使用结构化查询sql(structuredquerylanguage)语言来实现。

通过上述实施例,可以避免现有技术中的表连接导致的数据膨胀的现象,尤其是具有大数据量的大表与大表间的连接,上述实施例在连接时只选取相应的表连接字段(即上述的目标连接字段)和汇总数据字段(即汇总字段),对于其它根据表连接字段派生的相关维度字段(即各个关键字段,也相当于上述的查询字段),经过二次自身查询获得,使其大表连接里的列数明显降低,从而减少内存的占用率,提升大表连接的性能。

上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。

在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

数据表信息的处理装置包括处理器和存储器,上述第一获取单元20、第二获取单元40、第一表连接单元60以及第二表连接单元80等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。

处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来减少大数据量表连接时所需处理的数据量,从而实现了通过一步拖拽即可实现减少具有大数据量的表在进行表连接时的开销的技术效果,进而解决了现有技术中大数据量表在进行表连接时开销大的技术问题。

存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram),存储器包括至少一个存储芯片。

本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:在当前连接的两个数据表的数据量大于预设数据量的情况下,获取两个数据表之间的目标连接字段;获取两个数据表的第一表中目标连接字段对应的数据列;将数据列与两个数据表的第二表进行表连接,得到第三表;利用数据列,将第一表和第三表进行表连接,得到第一表和第二表的连接结果。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使 得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1