分组处理方法、装置、电子设备和存储介质制造方法及图纸

技术编号:27288664 阅读:30 留言:0更新日期:2021-02-06 11:57
本发明专利技术公开了一种分组处理方法、装置、电子设备和存储介质。其中,该方法包括确定分组语句对应的水平分区表;获取所述水平分区表对应的至少一个子表数据;汇总各所述子表数据作为分组结果返回。本发明专利技术实施例,通过确定出分组语句对应的水平分区表,借助水平分区表的数据分布特性进行分组,降低了分组过程中数据库的内存占用,可提高数据库处理性能。可提高数据库处理性能。可提高数据库处理性能。

【技术实现步骤摘要】
分组处理方法、装置、电子设备和存储介质


[0001]本专利技术实施例涉及数据库
,尤其涉及一种分组处理方法、装置、电子设备和存储介质。

技术介绍

[0002]分组是结构化查询语句中一种常见的功能,例如一个确定每个班级成绩最好的学生成绩的结构化查询语句可以表示为:SELECT MAX(GRADES)FROM CLASS_GRADE_TABLE GROUP BY CLASS_NO;对于上述分组语句,数据库为了实现分组功能需要将所要查询表CLASS_GRADE_TABLE的所有数据进行收集,再根据指定的分组列CLASS_NO把数据分配到不同的数据容器中,例如,将数据分配到哈希表不同的槽中,分组完成后遍历各数据容器中的数据,根据集函数MAX()求出MAX值作为该组的结果进行输出即可。
[0003]但是通过上述过程可以看出数据库在实现分组功能时在“收集数据”、“数据分组”、“遍历数据容器”和“集函数求值”等几处均需要进行计算,花费数据库中央处理器大量的计算性能,并且在分组过程中需要在内存中缓存全部数据,对数据库的处理性能具有较大影响。

技术实现思路

[0004]本专利技术提供一种水平分区表的分组处理方法、装置、电子设备和存储介质,以降低数据库的内存使用规模,可提升数据的性能。
[0005]第一方面,本专利技术实施例提供了一种分组处理方法,该方法包括:
[0006]确定分组语句对应的水平分区表;获取所述水平分区表对应的至少一个子表数据;汇总各所述子表数据作为分组结果返回。
[0007]第二方面,本专利技术实施例还提供了一种分组处理装置,该装置包括:
[0008]分区表模块,用于确定分组语句对应的水平分区表;
[0009]数据提取模块,用于获取所述水平分区表对应的至少一个子表数据;
[0010]分组结果模块,用于汇总各所述子表数据作为分组结果返回。
[0011]第三方面,本专利技术实施例还提供了一种电子设备,该电子设备包括:
[0012]一个或多个处理器;
[0013]存储器,用于存储一个或多个程序,
[0014]当所述一个或多个处理器被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本专利技术实施例中任一所述的分组处理方法。
[0015]第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本专利技术实施例中任一所述的分组处理方法。
[0016]本专利技术实施例,通过确定出分组语句对应的水平分区表,提取水平分区表中的子表数据,将子表数据进行汇总作为分组结果返回,本专利技术实施例借助水平分区表完成分组语句,减少数据库在执行分组语句过程中的缓存占用量,可增强数据库的处理性能。
附图说明
[0017]图1是本专利技术实施例一提供的一种分组处理方法的流程图;
[0018]图2是本专利技术实施例二提供的另一种分组处理方法的流程图;
[0019]图3是本专利技术实施例三提供的一种分组处理装置的结构示意图;
[0020]图4是本专利技术实施例四提供的一种电子设备的结构示意图。
具体实施方式
[0021]下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构,此外,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合。
[0022]实施例一
[0023]图1是本专利技术实施例一提供的一种分组处理方法的流程图,本实施例可适用于数据库中执行分组语句的情况,该方法可以由分组处理装置来执行,该装置可以采用硬件和/或软件的方式来实现,一般集成在数据库中,参见图1,本专利技术实施例提供的方法具体包括如下步骤:
[0024]步骤110、确定分组语句对应的水平分区表。
[0025]其中,分组语句可以是结构化查询语音(Structured Query Language,SQL)中对查询结果进行分组的语句,例如,求出每个班级成绩最好的学习成绩:SELECT MAX(GRADES)FROM CLASS_GRADE_TABLE GROUP BY CLASS_NO。水平分区表可以是存储结构与数值相关的数据表,水平分区表可以由一个或者多个子表组成,每个子表中的数据的取值可以对应相同的范围或者相同的数值。
[0026]在本专利技术实施例中,可以获取分组语句中的查询表,若查询表为水平分区表,则根据查询表在数据库中获取对应的存储数据,其中,分组语句中的查询表可以是水平分区表的表名,可以根据该表名在数据库获取到对应的数据表以便于进行后续操作。可以理解的是,若分组语句的查询表不是水平分区表,则可以按照现有的分组方法进行分组。
[0027]步骤120、获取水平分区表对应的至少一个子表数据。
[0028]其中,子表数据可以是水平分区表中各子表中存储的数据,水平分区表可以由一个或多个子表组成。
[0029]在本专利技术实施例中,可以针对水平分区表的各子表,采集当前子表中存储的数据,由于水平分区表的存储数据的分布特性,采集到各子表中的子表数据后,按照子表数据对应子表的不同,子表数据可以处于分组状态。
[0030]步骤130、汇总各子表数据作为分组结果返回。
[0031]具体的,可以将采集到的各子表数据汇总后作为分组结果返回,其中,分组结果可以由一个或多个子表数据组成,每个子表数据可以分别对应一个分组。
[0032]本专利技术实施例,通过确定分组语句对应的水平分区表,采集水平分区表对应的子表数据,汇总各子表数据作为分组结果反馈,实现了低缓存占用的分组,降低了数据库的存储开销,可增强数据库的处理性能。
[0033]实施例二
[0034]图2是本专利技术实施例二提供的另一种分组处理方法的流程图,本专利技术实施例是在上述实施例基础上的具体化,通过对是否存在集函数采取不同的处理方式进一步提高分组效率,参见图2,本专利技术实施例提供的方法具体包括如下步骤:
[0035]步骤210、确定分组语句的语句结构满足处理条件,其中,处理条件至少包括存在分组子句、查询表为单表和分组子句存在一个分组项。
[0036]其中,语句结构可以是分组语句的组成结构,可以包括查询表、分组项以及查询项等部分组成,查询表可以表示分组语句需要查询的数据表,分组项可以表示分组语句分组依据的数据表中的数据列,查询项可以表示分组语句在数据表查询的数据列。
[0037]在本专利技术实施例中,当分组语句的语句结构满足存在分组子句,例如,存在GROUP BY子句,且分组子句只存在一个分组项,以及分组语句的查询表为单表时,可以确定该分组语句可以进行执行本专利技术实施例提供的分组方法。
[0038]步骤220、确定分组语句对应的水平分区表。
[0039]进一步的,在上述专利技术实施例的基础上,所述水平分区表为一级LIST水平分区表,且所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分组处理方法,其特征在于,所述方法包括:确定分组语句对应的水平分区表;获取所述水平分区表对应的至少一个子表数据;汇总各所述子表数据作为分组结果返回。2.根据权利要求1所述的方法,其特征在于,还包括:确定所述分组语句的语句结构满足处理条件,其中,所述处理条件至少包括存在分组子句、查询表为单表和分组子句存在一个分组项。3.根据权利要求1所述的方法,其特征在于,所述水平分区表为一级LIST水平分区表,且所述水平分区表对应的子表的分区值有且仅有一个。4.根据权利要求1所述的方法,其特征在于,所述分组语句的分组项与所述水平分区表的分区列相同。5.根据权利要求1所述的方法,其特征在于,所述获取所述水平分区表对应的至少一个子表数据,包括:若所述分组语句不包括集函数,则针对所述水平分区表的子表,提取所述子表内第一行数据作为子表数据;若所述分组语句包括集函数,则针对所述水平分区表的子表,遍历所述子表内的所有数据,并将所述集函数处理所述所有数据的处理结果作为子表数据。6.根据权利要求...

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

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

1