【技术实现步骤摘要】
聚集结果的确定方法、装置、设备和存储介质
本专利技术涉及数据库
,尤其涉及一种聚集结果的确定方法、装置、设备和存储介质。
技术介绍
关系型数据库多采用结构化语言(StructuredQueryLanguage,SQL)作为操作语言。聚集函数和外连接函数是结构化查询语言中常见的两种函数,分别通过两个操作符来完成。现有技术在执行外连接函数和采用该外连接函数的连接结果作为聚集对象的聚集函数时,一般会首先对外连接函数的两连接项所属的表格执行外连接操作,然后再依据外连接得到的表格执行聚集函数,得到聚集函数的聚集结果。但是,现有的执行方法的执行效率较低,使得数据库的查询效率较低,用户需要等待较长的时间。
技术实现思路
有鉴于此,本专利技术实施例提供一种聚集结果的确定方法、装置、设备和存储介质,以提高聚集函数的执行效率。第一方面,本专利技术实施例提供了一种聚集结果的确定方法,包括:在执行到目标聚集函数对应的目标外连接函数时,获取目标外连接函数的连接项的项值信息,其中,所述目标外连接函数为所述目标聚集函数的直接孩子且所述目标外连接函数的连接条件为等式;根据所述项值信息确定所述目标聚集函数的聚集结果。第二方面,本专利技术实施例提供了一种聚集结果的确定装置,包括:信息获取模块,用于在执行到目标聚集函数对应的目标外连接函数时,获取目标外连接函数的连接项的项值信息,其中,所述目标外连接函数为所述目标聚集函数的直接孩子且所述目标外连接函数的连接条件为等式; >结果确定模块,用于根据所述项值信息确定所述目标聚集函数的聚集结果。第三方面,本专利技术实施例提供了一种设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本专利技术实施例所述的聚集结果的确定方法。第四方面,本专利技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本专利技术实施例所述的聚集结果的确定方法。在上述确定聚集结果的技术方案中,在执行到目标聚集函数对应的目标外连接函数时,获取该目标外连接函数的连接项的项值信息,并根据目标外连接函数的项值信息确定该目标聚集函数的聚集结果。本专利技术实施例通过采用上述技术方案,在执行外连接函数的过程中同时完成聚集函数的计算,而无需首先计算得到目标外连接函数的连接结果,然后再对该连接结果执行聚集操作,能够简化聚集函数聚集结果的计算过程,减少计算过程中的数据运算量,从而,提高聚集函数聚集结果的计算速度,进而提高数据库的查询效率,减少用户的等待时间。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为本专利技术实施例一提供的一种聚集结果的确定方法的流程示意图;图2为本专利技术实施例二提供的一种聚集结果的确定方法的流程示意图;图3为本专利技术实施例三提供的一种聚集结果的确定装置的结构框图;图4为本专利技术实施例四提供的一种设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部内容。此外,在不冲突的情况下,本专利技术中的实施例及实施例中的特征可以相互组合实施例一本专利技术实施例一提供一种聚集结果的确定方法。该方法可以由聚集结果的确定装置执行,该装置可以由软件和/或硬件实现,一般可集成在计算机设备中,适用于确定SQL语句中以外连接函数为直接孩子的聚集函数的聚集结果的场景。图1是本专利技术实施例一提供的一种聚集结果的确定方法的流程示意图,如图1所示,所述方法包括:S110、在执行到目标聚集函数对应的目标外连接函数时,获取目标外连接函数的连接项的项值信息,其中,所述目标外连接函数为所述目标聚集函数的直接孩子且所述目标外连接函数的连接条件为等式。在本实施例中,针对包含目标聚集函数的SQL语句,可以依据SQL语句的执行计划依次执行SQL语句中的各函数,并在执行与目标聚集函数对应的目标外连接函数时,获取目标外连接函数的左连接项和右连接项的项值信息,即获取目标外连接函数左连接项的各左项值以及目标外连接函数右连接项的各右项值,作为目标外连接函数的连接项的项值信息,如确定目标外连接函数所需连接的左表和右表,并自左表中获取左连接项的取值,自右表中获取右连接项的取值。其中,目标外连接函数是自身为目标聚集函数的直接孩子且自身的连接条件为等式的外连接函数,其类型可以为左外连接函数、右外连接函数或全外连接函数。S120、根据所述项值信息确定所述目标聚集函数的聚集结果。在本实施例中,可以通过将左连接项的各项值与左连接项的各项值进行对比,得到目标函数的聚集结果。以目标聚集函数为全外连接函数、目标聚集函数需要求取目标外连接函数左右连接项中存在的相互匹配的项值对(即匹配项值对)的个数为例,可以针对左连接项的每个左项值,将右连接项的各右项值分别与该左项值进行对比,统计右连接项中存在的与给左项值相等的右项值的个数,作为该左项值的匹配个数,并在统计得到每个左项值的匹配个数后,计算左连接项各左项值的匹配个数之和,即可得到目标外连接函数左连接项和右连接项中存在的匹配项值对的个数,从而在目标外连接函数的执行过程中得到目标聚集函数的聚集结果。其中,目标外连接函数可以哈希外连接的方式实现,也可以以其他外连接(如索引外连接、嵌套外连接等)的方式实现,本实施例不对此进行限制。本专利技术实施例一提供的聚集结果的确定方法,在执行到目标聚集函数对应的目标外连接函数时,获取该目标外连接函数的连接项的项值信息,并根据目标外连接函数的项值信息确定该目标聚集函数的聚集结果。本实施例通过采用上述技术方案,在执行外连接函数的过程中同时完成聚集函数的计算,而无需首先计算得到目标外连接函数的连接结果,然后再对该连接结果执行聚集操作,能够简化聚集函数聚集结果的计算过程,减少计算过程中的数据运算量,从而,提高聚集函数聚集结果的计算速度,进而提高数据库的查询效率,减少用户的等待时间。实施例二图2为本专利技术实施例二提供的一种聚集结果的确定方法的流程示意图,本实施例在上述实施例的基础上进行优化,进一步地,在所述在执行到目标聚集函数对应的目标外连接函数时,获取目标外连接函数的连接项的项值信息之前,还包括:确定SQL语句中包含目标聚集函数,其中,所述目标聚集函数为用于统计聚集对象的数量且孩子为非分组函数的求和函数或计数函数,所述聚集对象包括下述四项中的至少一项:所述目标外连接函数两连接项中的匹配项值对、所述目标外连接函数左连接项中存在的不与右连接项中的任一右项值相等且符合连接条件的非匹配左项值、所述目标外连接函数右连接项中存在的不与左连接项中的任一左项值相等且符合连接条件的非匹配右项值以及所述目标本文档来自技高网...
【技术保护点】
1.一种聚集结果的确定方法,其特征在于,包括:/n在执行到目标聚集函数对应的目标外连接函数时,获取目标外连接函数的连接项的项值信息,其中,所述目标外连接函数为所述目标聚集函数的直接孩子且所述目标外连接函数的连接条件为等式;/n根据所述项值信息确定所述目标聚集函数的聚集结果。/n
【技术特征摘要】
1.一种聚集结果的确定方法,其特征在于,包括:
在执行到目标聚集函数对应的目标外连接函数时,获取目标外连接函数的连接项的项值信息,其中,所述目标外连接函数为所述目标聚集函数的直接孩子且所述目标外连接函数的连接条件为等式;
根据所述项值信息确定所述目标聚集函数的聚集结果。
2.根据权利要求1所述的方法,其特征在于,在所述在执行到目标聚集函数对应的目标外连接函数时,获取目标外连接函数的连接项的项值信息之前,还包括:
确定SQL语句中包含目标聚集函数,其中,所述目标聚集函数为用于统计聚集对象的数量且孩子为非分组函数的求和函数或计数函数,所述聚集对象包括下述四项中的至少一项:所述目标外连接函数两连接项中的匹配项值对、所述目标外连接函数左连接项中存在的不与右连接项中的任一右项值相等且符合连接条件的非匹配左项值、所述目标外连接函数右连接项中存在的不与左连接项中的任一左项值相等且符合连接条件的非匹配右项值以及所述目标外连接函数基准连接项中不符合连接条件的非连接项值。
3.根据权利要求2所述的方法,所述根据所述项值信息确定所述目标聚集函数的聚集结果,包括:
解析所述目标聚集函数的表达式,确定所述目标聚集函数的目标聚集对象;
根据所述项值信息确定所述目标聚集对象的数量,以得到所述目标聚集函数的聚集结果。
4.根据权利要求3所述的方法,其特征在于,所述目标外连接函数为左外连接函数,所述根据所述项值信息确定所述目标聚集对象的数量,包括:
根据所述项值信息,统计左连接项中的左项值与右连接项中的右项值相等的总次数作为所述匹配项值对的第一数量,统计左连接项中存在的不与右连接项中的任一右项值相等且项值不为NULL值的第二左连接项的数量作为所述非匹配左项值的第二数量,统计左连接项中存在的项值为NULL值的第三左项值的数量作为所述非连接项值的第四数量,并将所述非匹配右项值的第三数量确定为零。
5.根据权利要求3所述的方法,其特征在于,所述目标外连接函数为右外连接函数,所述根据所述项值信息确定所述目标聚集对象数量,包括:
根据所述项值信息,统计右连接项中的右项值与左连接项中的左项值相等的总次数作为所述匹配项值对的第一数量,统计右连接项中存在的不与左连接项中的任一左项值相等且项值不为NULL值的第二右项值的数量作为所述非匹配右项值的第三数量,统计右连接项中存在的项值为NULL值的第三右项值...
【专利技术属性】
技术研发人员:张钦,韩朱忠,
申请(专利权)人:上海达梦数据库有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。