数据库表等值连接的优化方法、装置、服务器及存储介质制造方法及图纸

技术编号:24707953 阅读:47 留言:0更新日期:2020-06-30 23:58
本发明专利技术实施例公开了一种数据库表等值连接的优化方法、装置、服务器及存储介质。该方法包括:解析查询语句,获取查询条件、数据库表的表名和数据库表在查询条件中涉及的字段;将查询条件、表名和字段与预设优化条件进行匹配,根据匹配结果判断是否进行等值连接的优化操作;若进行等值连接的优化操作,则根据数据扫描计划节点生成连接计划节点,根据数据扫描计划节点和连接计划节点生成优化后的执行计划,所述执行计划用于并行地对数据库表进行等值连接计算,得到等值连接计算结果。本发明专利技术实施例解决相关技术因额外增加线程汇总数据或分发数据的I/O开销和CPU开销而降低性能的问题,提升了执行效率、提高了性能。

【技术实现步骤摘要】
数据库表等值连接的优化方法、装置、服务器及存储介质
本专利技术实施例涉及计算机技术,尤其涉及一种数据库表等值连接的优化方法、装置、服务器及存储介质。
技术介绍
关系型数据库,是创建在关系模型基础上的数据库,存储关系型数据库中的表时,因计算机内存采用一维结构的顺序编址,所以可以采用逐条输入表中各行数据的方式(即行存),或者批量导入表中各列数据的方式(即列存)。在关系型数据库中的表存储后,可基于关系代数对表执行多种连接操作,例如:对两张数据库表执行等值连接,即查询两张数据库表中特定字段满足等值条件的数据。在多个线程并行执行等值连接计算时,由于各个线程所取得的数据值是无规律的,将各个线程的计算结果汇总后,存在计算结果的数量小于正确结果数量的问题。相关技术中的一些方案虽然可以解决上述问题,但是额外增加了线程汇总数据或分发数据的I/O开销和CPU开销,严重降低性能。
技术实现思路
本专利技术实施例提供一种数据库表等值连接的优化方法、装置、服务器及存储介质,可以解决由于额外增加了线程汇总数据或分发数据的I/O开销和CPU开销而降低性能的问题。第一方面,本专利技术实施例提供了一种数据库表等值连接的优化方法,包括:解析查询语句,获取查询条件、数据库表的表名和所述数据库表在所述查询条件中涉及的字段;将所述查询条件、所述数据库表的表名和所述字段与预设优化条件进行匹配,根据匹配结果判断是否进行等值连接的优化操作;若进行等值连接的优化操作,则根据数据扫描计划节点生成连接计划节点,根据所述数据扫描计划节点和所述连接计划节点生成优化后的执行计划,所述执行计划用于并行地对所述数据库表进行等值连接计算,得到等值连接计算结果。第二方面,本专利技术实施例还提供了一种数据库表等值连接的优化装置,该装置包括:语句解析模块,用于解析查询语句,获取查询条件、数据库表的表名和所述数据库表在所述查询条件中涉及的字段;优化操作判断模块,用于将所述查询条件、数据库表的表名和所述字段与预设优化条件进行匹配,根据匹配结果判断是否进行等值连接的优化操作;等值连接计算模块,用于若进行等值连接的优化操作,则根据数据扫描计划节点生成连接计划节点,根据所述数据扫描计划节点和所述连接计划节点生成优化后的执行计划,所述执行计划用于并行地对所述数据库表进行等值连接计算,得到等值连接计算结果。第三方面,本专利技术实施例还提供了一种服务器,该服务器包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术任意实施例提供的数据库表等值连接的优化方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本专利技术任意实施例提供的数据库表等值连接的优化方法。本专利技术实施例提供一种数据库表等值连接的优化方案,在判定需要进行等值连接的优化操作时,根据数据扫描计划节点生成连接计划节点,根据所述数据扫描计划节点和所述连接计划节点生成优化后的执行计划,所述执行计划用于并行的对所述数据库表进行等值连接计算,得到等值连接计算结果,实现每个线程计算自己对应的分区表的等值连接,对各个线程的计算结果进行汇总得到等值连接结果,解决了相关技术额外增加线程汇总数据或分发数据的I/O开销和CPU开销的问题,提升了执行效率、提高了性能。附图说明图1为本专利技术实施例提供的一种数据库表等值连接的优化方法的流程图;图2为本专利技术实施例提供的一种数据库表等值连接的优化方法中执行计划得到执行方法流程图;图3为本专利技术实施例提供的一种数据库表等值连接的优化装置的结构框图;图4为本专利技术实施例提供的一种服务器的结构示意图具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。为例便于理解,下面对本专利技术实施例中可能出现的词汇进行解释。数据库表分为非分区表和分区表。其中,分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。同构分区表是指结构完全相同的两个分区表。并行是一种利用机器硬件优势(多核CPU),提升性能的常见方式。通常来说,两个数据库表做等值连接,如果没有采用并行计算的方式,则任务线程先取出表TA的所有数据,再取出表TB的数据,再利用算法计算出所有满足等值的记录进行输出。常规的正确使用并行的办法有二种:方法一,需要将所有线程分配到的同一张表的数据先汇总到一个线程,再对两张表汇总后的数据进行等值连接计算,否则无法保证结果正确性。方法二,各个线程根据连接列、将不同值的数据进行线程间的分发,使得各个线程处理的数据相互之间没有重复值。例如,根据等值连接C1=D1,连接列分别是T1表中的C1和T2表中的D1,将T1表中满足C1=1和T2表中满足D1=1的数据都分发给同一个线程,将T1表中C1=2和T2表中满足D1=2的数据都分发给同一个线程。最后,每个线程根据各自分配到的数据进行等值连接计算,最后再将结果汇总到一起进行输出。可知,两种常规方法利用并行产生的性能提升只对取数据阶段有效,但额外增加了线程汇总数据或分发数据的IO和CPU开销。假设有如下分区表:CREATETABLETA(C1INT)PARTITIONBYHASH(C1)(PARTITIONTA1,PARTITIONTA2);CREATETABLETB(D1INT)PARTITIONBYHASH(D1)(PARTITIONTB1,PARTITIONTB2)。执行等值连接查询语句:SELECT*FROMTA,TBWHEREC1=D1;优化前的执行计划:或者,上述执行计划中,GATHER代表数据汇总计划节点,HASHJOIN代表连接计划节点,DISTRIBUTE代表数据分发计划节点,以及SCAN代表数据扫描计划节点。图1为本专利技术实施例提供的一种数据库表等值连接的优化方法的流程图,本实施例可适用于对同构分区表进行等值连接查询的情况,该方法可以由一种数据库等值连接的优化装置来执行,该装置可以通过硬件和/或软件实现,并且该装置通常可集成于服务器。如图1所示,该方法包括:步骤110、解析查询语句,获取查询条件、数据库表的表名和所述数据库表在所述查询条件中涉及的字段。需要说明的是,用户想对存储的多个数据库表执行连接操作时,在数据库查询引擎中输入查询语句,数据库查询引擎接收到查询语句后,向数据库表等值连接的优化装置转发。数据库表等值连接的优化装置接收到查询语句,解析该查询语句得到查询条件、数据库表的表名和所述数据库表在所述查询条件中涉及的字段。其中,查询条件可以是等值本文档来自技高网...

【技术保护点】
1.一种数据库表等值连接的优化方法,其特征在于,包括:/n解析查询语句,获取查询条件、数据库表的表名和所述数据库表在所述查询条件中涉及的字段;/n将所述查询条件、所述数据库表的表名和所述字段与预设优化条件进行匹配,根据匹配结果判断是否进行等值连接的优化操作;/n若进行等值连接的优化操作,则根据数据扫描计划节点生成连接计划节点,根据所述数据扫描计划节点和所述连接计划节点生成优化后的执行计划,所述执行计划用于并行地对所述数据库表进行等值连接计算,得到等值连接计算结果。/n

【技术特征摘要】
1.一种数据库表等值连接的优化方法,其特征在于,包括:
解析查询语句,获取查询条件、数据库表的表名和所述数据库表在所述查询条件中涉及的字段;
将所述查询条件、所述数据库表的表名和所述字段与预设优化条件进行匹配,根据匹配结果判断是否进行等值连接的优化操作;
若进行等值连接的优化操作,则根据数据扫描计划节点生成连接计划节点,根据所述数据扫描计划节点和所述连接计划节点生成优化后的执行计划,所述执行计划用于并行地对所述数据库表进行等值连接计算,得到等值连接计算结果。


2.根据权利要求1所述的方法,其特征在于,所述预设优化条件包括:
所述查询条件涉及两个所述数据库表、所述查询条件为等值连接、所述等值连接左右两侧的字段所属的数据库表为同构分区表、且所述等值连接左右两侧的字段所属的数据库表包含相应数据库表的全部分区字段,其中,所述分区字段是对数据库表进行分区所依赖的字段。


3.根据权利要求2所述的方法,其特征在于,所述将所述查询条件、所述数据库表的表名和所述字段与预设优化条件进行匹配,根据匹配结果判断是否进行等值连接的优化操作,包括:
判断所述查询条件是否为涉及两个所述数据库表的连接条件;
若是,则判断所述连接条件是否为等值连接;
若是,则判断所述等值连接左右两侧的字段所属的数据库表是否是同构分区表;
若是,则判断所述等值连接左右两侧的字段所属的数据库表是否包含各数据库表的全部分区字段;
若是,则确定进行等值连接的优化操作。


4.根据权利要求3所述的方法,其特征在于,在判断所述等值连接左右两侧的字段所属的数据库表是否包含各数据库表的全部分区字段之后,还包括:
若所述等值连接左右两侧的字段所属的数据库表包含相应数据库表的全部分区字段,则确定数据扫描计划节点中设定变量的取值为第一特定值。


5.根据权利要求3所述的方法,其特征在于,所述判断所述等值连接左右两侧的字段所属的数据库表是否是同构分区表,包括:
在分区字段的数目、分区字段的数据类型、分区层次、每层分区类型、每个主表的分区数目、每个分区的边界值或每个分区可包含的值均一致的情况下,确定所述等值连接左右两侧的字段所属的数据库表是同...

【专利技术属性】
技术研发人员:朱仲颖万伟韩朱忠
申请(专利权)人:上海达梦数据库有限公司
类型:发明
国别省市:上海;31

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

1