CN115757477A - 数据库的查询处理方法、装置、设备及存储介质 - Google Patents
数据库的查询处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115757477A CN115757477A CN202211339172.2A CN202211339172A CN115757477A CN 115757477 A CN115757477 A CN 115757477A CN 202211339172 A CN202211339172 A CN 202211339172A CN 115757477 A CN115757477 A CN 115757477A
- Authority
- CN
- China
- Prior art keywords
- query
- database
- hardware
- cost
- heterogeneous hardware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据库的查询处理方法、装置、设备及存储介质,所述方法用于数据库,该数据库包括用于执行密集型运算的异构硬件、扩展插件和存储引擎插件;插件用于实现异构硬件和数据库服务器之间的连接,可以卸载数据库的密集型运算;所述方法包括:基于获取的数据库的查询语句生成多个查询计划树,并计算各查询计划树对应的目标总代价;目标总代价包括处理器代价、扫描磁盘代价、通信代价和异构硬件的硬件计算代价;根据目标总代价确定最优计划树对查询语句进行处理。通过使用异构硬件执行数据库查询语句涉及的密集型运算,提高了数据库的计算效率,进而减少了数据库的响应时间,并且可以释放服务器CPU资源,解决数据库算力不足的问题。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据库的查询处理方法、装置、设备及存储介质。
背景技术
随着OLTP(On-Line Transaction Processing,联机事务处理过程)和OLAP(On-Line Analytical Processing,联机分析处理过程)等关系型数据库的广泛应用,业务系统对数据库服务器的响应时间提出了更高的要求,随着数据量的增长,传统的x86等服务器架构已不能满足数据库对计算资源的需求,服务器算力不足成为数据库面临的主要问题。
发明内容
本发明提供一种数据库的查询处理方法、装置、设备及存储介质,用以解决现有技术中数据库服务器算力不足的缺陷,实现对数据库的加速,减少数据库的响应时间。
本发明提供一种数据库的查询处理方法,应用于数据库,所述数据库包括异构硬件、扩展插件和存储引擎插件;所述扩展插件和所述存储引擎插件用于实现所述异构硬件和所述数据库的服务器之间的连接;所述异构硬件用于执行所述数据库的查询语句所涉及的密集型运算;所述方法包括:
获取所述数据库的查询语句,并基于所述查询语句生成多个查询计划树;
计算各所述查询计划树对应的目标总代价;所述目标总代价为根据所述查询计划树处理所述查询语句所需的总代价;所述总代价包括处理器代价、扫描磁盘代价、通信代价和所述异构硬件的硬件计算代价;
根据所述目标总代价从所述多个查询树中确定最优计划树,并根据所述最优计划树对所述查询语句进行处理。
根据本发明提供的数据库的查询处理方法,所述数据库包括执行器适配层,所述执行器适配层中适配有执行器;所述根据所述最优计划树对所述查询语句进行处理的步骤,包括:
利用所述执行器适配层中适配的执行器,读取所述查询语句要查询的数据表的页面数据;
对所述页面数据进行封装,得到所述页面数据对应的数据包;
将所述数据包发送至所述异构硬件,以调用所述异构硬件根据所述最优计划树对所述查询语句进行处理。
根据本发明提供的数据库的查询处理方法,所述数据库还包括硬件驱动层,所述硬件驱动层用于提供所述异构硬件的底层操作接口、管理所述异构硬件的内存和数据传输、启动所述异构硬件的计算资源以调用所述异构硬件进行计算;
将所述数据包发送至所述异构硬件,以调用所述异构硬件根据所述最优计划树对所述查询语句进行处理的步骤,包括:
通过所述硬件驱动层调用所述异构硬件的操作接口,并通过所述操作接口将所述数据包发送至所述异构硬件的缓存区;所述操作接口包括计算接口;
启动所述异构硬件的计算接口,以根据所述数据包调用所述异构硬件执行所述最优计划树中各节点对应的计算操作,对所述查询语句进行处理。
根据本发明提供的数据库的查询处理方法,所述根据所述数据包调用所述异构硬件执行所述最优计划树中各节点对应的计算操作的步骤,包括:
将所述数据包中的数据解析为行数据;
获取所述最优计划树对应的计算策略,并确定所述计算策略对应的目标算子;
根据所述行数据和所述目标算子,调用所述异构硬件执行所述最优计划树中各节点对应的计算操作。
根据本发明提供的数据库的查询处理方法,所述数据库还包括查询引擎适配层,所述查询引擎适配层适配有查询引擎;所述基于所述查询语句生成多个查询计划树的步骤,包括:
通过所述查询引擎适配层适配的查询引擎,将所述查询语句解析为语法树;所述查询引擎包括查询器和优化器;
利用所述查询器和所述优化器,将所述语法树转换为多个查询树;
根据所述多个查询树生成多个查询计划树。
根据本发明提供的数据库的查询处理方法,所述多个查询计划树包括第一查询计划树和第二查询计划树,所述根据所述多个查询树生成多个查询计划树的步骤,包括:
从所述多个查询树中确定需要调用所述异构硬件的第一查询树,以及不需要调用所述异构硬件的第二查询树;
将所述异构硬件的硬件计算处理,以及所述异构硬件对应的硬件计算代价添加到所述第一查询树中,生成所述第一查询树对应第一查询计划树;并生成所述第二查询树对应的第二查询计划树。
根据本发明提供的数据库的查询处理方法,所述数据库还包括数据查询层,用于接收所述查询语句;所述根据所述最优计划树对所述查询语句进行处理之后,还包括:
获取对所述查询语句的处理结果,并将所述处理结果向所述数据查询层返回。
本发明还提供一种数据库的查询处理装置,包括:
语句处理模块,用于获取所述数据库的查询语句,并基于所述查询语句生成多个查询计划树;
代价计算模块,用于计算各所述查询计划树对应的目标总代价;所述目标总代价为根据所述查询计划树处理所述查询语句所需的总代价;所述总代价包括处理器代价、磁盘扫描代价、通信代价和所述异构硬件的硬件计算代价;
查询处理模块,用于根据所述目标总代价从所述多个查询树中确定最优计划树,并根据所述最优计划树对所述查询语句进行处理。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据库的查询处理方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据库的查询处理方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述数据库的查询处理方法。
本发明提供的数据库的查询处理方法、装置、设备及存储介质,通过生成数据库的查询语句对应的多个查询计划树,并计算各查询计划树的目标总代价,从而从多个查询计划树中确定最优计划数据;根据该最优计划树处理查询语句,可以提高数据库的查询执行效率。其中,数据库包括异构硬件、扩展插件和存储引擎插件;扩展插件和存储引擎插件用于实现异构硬件和数据库服务器之间的连接,以将数据库的密集型运算卸载到异构硬件中,异构硬件用于执行数据库的密集型运算;通过将数据库查询语句所涉及的密集型计算卸载到异构硬件中执行,同时基于处理查询语句所需的总代价选取最优计划树处理查询语句,可以提高数据库的计算效率,减少数据库的响应时间,提高数据库的响应速度。通过使用异构硬件,可以释放服务器CPU资源,解决数据库服务器算力不足的问题。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的数据库的查询处理方法的流程示意图;
图2是本发明提供的数据库的查询引擎的处理流程示意图;
图3是本发明提供的数据库的查询处理装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图2描述本发明的数据库的查询处理方法。
本发明提供的数据库的查询处理方法,应用于关系型数据库,该数据库包括异构硬件、扩展插件和存储引擎插件;其中,扩展插件和存储引擎插件用于实现异构硬件与数据库服务器之间的连接,使用数据库的扩展插件和存储引擎插件,将数据库的查询语句涉及的密集型运算卸载到异构硬件中执行;异构硬件用于执行数据库查询语句所涉及的密集型运算。通过使用异构硬件参与数据库服务器计算,提高数据库的计算效率,并释放数据库服务器的CPU资源给业务系统使用,实现对数据库的加速。具体地,参照图1,图1为本发明实施例提供的数据库的查询处理方法的流程示意图,基于图1,本发明实施例提供的数据库的查询处理方法,包括:
步骤100,获取所述数据库的查询语句,并基于所述查询语句生成多个查询计划树;
在本实施例中,数据库包括异构硬件,该异构硬件用于执行数据库的查询语句所涉及的密集型运算,异构硬件一般无法与传统数据库服务器直接兼容,需要做存储层的适配,才能将数据库的密集型计算卸载到异构硬件计算,因此,需要做数据库的扩展插件和存储引擎插件,实现异构硬件与数据库服务器之间的连接。数据库的查询语句所涉及的密集型运算,如连接(Join)、聚合(Aggregation)、排序(sort)、过滤(Scan)等,可以卸载到异构硬件中进行处理,利用异构硬件的并行处理能力和优势,提高数据库的计算效率,减少数据库查询的响应时间,同时释放CPU资源,实现数据库加速。
在获取到数据库的查询语句时,首先基于获取的查询语句生成多个查询计划树,不同的查询计划树对应的数据查询策略不同。各查询计划树中包括查询语句需要查询的一个或多个数据表,以及需要对查询的数据表执行的连接、聚合、排序、过滤等运算操作,基于此,数据查询策略包括对要查询的数据表的查询和操作顺序,以及需要调用的资源和资源调用策略。也即,根据查询语句需要查询的一个或多个数据表,以及需要对数据表执行的相关操作,为响应于获取到的查询语句,可以调用不同的资源处理查询语句对应的查询任务,根据对要查询的数据的查询策略不同,生成查询语句对应的多个查询计划树。生成的各个查询计划树中,包括异构硬件对查询语句所涉及的密集运算的计算处理节点。
步骤200,计算各所述查询计划树对应的目标总代价;所述目标总代价为根据所述查询计划树处理所述查询语句所需的总代价;所述总代价包括处理器代价、扫描磁盘代价、通信代价和所述异构硬件的硬件计算代价;
计算各查询计划树对应的目标总代价,该目标总代价为相对性的计量单位,用于计量执行查询语句对应的查询任务所需的资源和时间等成本,例如,CPU计算一行数据的代价为0.01,扫描一个页面的IO代价为1.0等。各查询计划树对应的总代价包括处理器代价,即CPU计算代价、扫描磁盘代价即IO代价、通信代价和异构硬件的硬件计算代价;总代价为CPU计算代价、扫描磁盘代价、通信代价、异构硬件的硬件计算代价之和。根据不同的查询计划树执行查询语句对应的查询任务时,调用不同的资源并根据不同的查询策略对需要查询的数据执行查询和相关操作,所需的资源和时间不同,从而所需的总代价也不相同。
步骤300,根据所述目标总代价从所述多个查询计划树中确定最优计划树,并根据所述最优计划树对所述查询语句进行处理。
根据各查询计划树对应的目标总代价,从多个查询计划树中确定一个总代价最少的最优计划树,根据该最优计划树对查询语句进行处理。其中,对查询语句进行处理,即执行查询语句对应的查询任务,基于最优计划树执行查询语句对应的查询任务时,所需的查询代价最小,查询执行效率最高,和/或数据库响应时间最短。
在本实施例中,通过生成数据库的查询语句对应的多个查询计划树,并计算各查询计划树的目标总代价,从而从多个查询计划树中确定最优计划数据;根据该最优计划树处理查询语句,可以提高数据库的查询执行效率。其中,数据库包括异构硬件、扩展插件和存储引擎插件;扩展插件和存储引擎插件用于实现异构硬件和数据库服务器之间的连接,以将数据库的密集型运算卸载到异构硬件中,异构硬件用于执行数据库的密集型运算;通过将数据库涉及的密集型计算卸载到异构硬件中执行,同时基于处理查询语句所需的总代价选取最优计划树处理查询语句,可以提高数据库的计算效率,减少数据库的响应时间,提高数据库的响应速度。通过使用异构硬件,可以释放数据库服务器的CPU资源,解决数据库服务器算力不足的问题。
进一步地,数据库还包括执行器适配层,该执行器适配层中适配有一个或多个执行器,步骤300中,根据最优计划树对查询语句进行处理,具体包括:
步骤301,利用所述执行器适配层中适配的执行器,读取所述查询语句要查询的数据表的页面数据;
步骤302,对所述页面数据进行封装,得到所述页面数据对应的数据包;
步骤303,将所述数据包发送至所述异构硬件,以调用所述异构硬件根据所述最优计划树对所述查询语句进行处理。
在本实施例中,数据库的执行器适配层中,适配有数据库执行器,用于执行数据库相关的计算操作,具体是根据生成的查询计划树,执行查询计划树中每个节点的计算操作,例如,多个数据表之间的连接、列数据分组、求和、条件过滤等。
在对查询语句进行处理时,利用执行器读取查询语句要查询的数据表的页面数据,该页面数据为数据表在数据库的page页中的信息。对读取的页面数据进行封装,得到对应的数据包,为提高数据传输效率,该数据包的大小至少为预设阈值。将数据包发送给异构硬件,具体是发送到异构硬件的缓存区,从而调用异构硬件根据最优计划树对查询语句进行处理。
进一步地,数据库还包括硬件驱动层,用于提供异构硬件的底层操作接口,操作接口包括计算接口;硬件驱动层还用于管理异构硬件的内存和数据传输、启动所述异构硬件的计算资源以调用异构硬件参与计算。步骤303中,将数据包发送给异构硬件,以调用异构硬件根据最优计划树对查询语句进行处理,具体包括:
步骤3031,通过所述硬件驱动层调用所述异构硬件的操作接口,并通过所述操作接口将所述数据包发送至所述异构硬件的缓存区;所述操作接口包括计算接口;
步骤3032,启动所述异构硬件的计算接口,以根据所述数据包调用所述异构硬件执行所述最优计划树中各节点对应的计算操作,对所述查询语句进行处理。
通过数据库的硬件驱动层,调用异构硬件的操作接口,通过该操作接口将数据包发送至异构硬件的缓存区,其中,异构硬件的操作接口包括计算接口。启动异构硬件的计算接口调用异构硬件的计算资源,从而根据异构硬件缓存区缓存的数据包,执行最优计划树中各节点对应的计算操作,对查询语句进行处理。需要说明的是,最优查询计划树包括多个节点,每个节点执行查询语句对应的查询任务的一部分,因此,在对查询语句进行处理时,需要调用异构硬件的计算资源分别执行最优查询计划树中各节点对应的计算操作。
再进一步地,硬件驱动层向上提供异构硬件底层的操作接口,向下下发执行命令指令,完成数据库的服务器主机与异构硬件之间的连接计算工作。硬件驱动层还用于处理异构硬件的读写通知信号。硬件驱动层中包括硬件内核计算单元,用于对数据包中的页面数据进行解析和数据库算子计算,执行相应的计算操作。
步骤3032中,根据数据包调用所述异构硬件执行最优计划树中各节点对应的计算操作,具体包括:
步骤310,将所述数据包中的数据解析为行数据;
步骤320,获取所述最优计划树对应的计算策略,并确定所述计算策略对应的目标算子;
步骤330,根据所述行数据和所述目标算子,调用所述异构硬件执行所述最优计划树中各节点对应的计算操作。
将异构硬件缓存区缓存的数据包中的数据解析为行数据,获取最优计划树对应的计算策略,并确定该计算策略对应的目标算子。其中,目标算子包括一个或多个,不同的算子对应不同类型的运算,包括连接算子、聚合算子、排序算子和过滤算子等,用于表示对要查询的数据表的不同类型的计算操作。如果存在多个目标算子,按照最优计划树执行各目标算子对应的计算操作,可以是顺序执行,也可以是并行执行,还可以是顺序和并行混合执行;当顺序执行时,完成当前算子对应的计算操作后,将计算结果下发给下一个算子,从而执行下一个算子对应的计算操作,在此对多个目标算子的执行方式不做具体限定。
优选地,执行器的处理步骤具体包括:
1.读取查询语句要查询的数据表的Page页的页面数据,并将读取的页面数据封装为一个大的数据包,为提高数据传输效率数据,封装后的数据包的大小超过预设阈值;
2.调用异构硬件的操作接口,并将数据传输硬件缓存区;
3.启动异构硬件的计算接口,调用异构硬件参与计算;
4.等待接收硬件计算完成的通知信号;
5.接收到硬件计算完成的通知信号后,读取硬件计算的返回结果,并向数据查询层返回。
硬件驱动层的硬件内核计算单元对查询语句的处理过程如下:
1.将数据包中的数据解析为行数据;
2.根据最优计划树对应的计算策略选择对应的目标算子;
3.如果存在多种算子,则完成当前算子计算后,下发给下一算子进行计算;
4.汇总各算子的计算结果,返回给数据库的服务器主机。
数据库还包括数据查询层,用于接收数据库的查询语句,该查询语句包括SQL语句,在对获取的查询语句进行处理后,还包括:
步骤400,获取对所述查询语句的处理结果,并将所述处理结果向所述数据查询层返回。
获取对查询语句的处理结果,并将该处理结果向数据查询层返回,其中,在获取对查询语句的处理结果时,硬件驱动层将各目标算子对应的计算结果数据汇总为查询语句的处理结果,并通过异构硬件的操作接口发送计算完成的通知信息,通知执行器读取处理结果;执行器在将数据包发送到异构硬件的缓存区,调用异构硬件参与计算后,即等待硬件计算完成的通知信号,在接收到异构硬件计算完成的通知信号时,读取异构硬件返回的处理结果,并向数据查询层返回,从而响应查询语句,完成对应的查询任务。
在本实施例中,通过对查询语句要查询的数据包的页面数据进行封装,得到对应的数据包,可以提高数据传输效率;基于数据库的执行器适配层和硬件驱动层,根据数据包调用异构硬件参与计算,执行最优计划树中各节点对应的计算操作,可以将数据库的查询语句涉及的密集型运算卸载到异构硬件中执行,从而释放数据库的处理器资源,提高计算效率,减少响应时间,提高数据库的响应速度。
参照图2所示的查询引擎的处理流程示意图,在一个实施例中,数据库还包括查询引擎适配层,查询引擎适配层中适配有一个或多个查询引擎,查询语句对应的查询树,查询语句对应的查询树在查询引擎中生成,具体地,步骤100中,基于查询语句生成查询树具体包括:
步骤101,通过所述查询引擎适配层适配的查询引擎,将所述查询语句解析为语法树;所述查询引擎包括查询器和优化器;
步骤102,利用所述查询器和所述优化器,将所述语法树转换为多个查询树;
步骤103,根据所述多个查询树生成多个查询计划树。
根据数据库的查询引擎适配层中适配的查询引擎,将获取的查询语句解析为语法树,该语法树为查询语句结构的图形表示,可以显示出查询语句要查询的数据表,以及需要对各数据表执行的计算操作。查询引擎适配层中适配的查询引擎包括查询器和优化器,根据解析出的语法树,经由查询器和优化器的处理,将语法树转化为多个查询树。
进一步地,多个查询计划树包括第一查询计划树和第二查询计划树,基于图2,步骤103中,根据多个查询树生成多个查询计划树,包括:
步骤1031,从所述多个查询树中确定需要调用所述异构硬件的第一查询树,以及不需要调用所述异构硬件的第二查询树;
步骤1032,将所述异构硬件的硬件计算处理,以及所述异构硬件对应的硬件计算代价添加到所述第一查询树中,生成所述第一查询树对应第一查询计划树;并生成所述第二查询树对应的第二查询计划树。
从生成的多个查询树中确定需要调用异构硬件的第一查询树,以及不需要调用异构硬件的第二查询树,第一查询树和第二查询树均可以包括一个或多个查询树,将硬件计算的处理节点添加到第一查询树中,生成第一查询树对应的第一查询计划树,并生成第二查询树对应的第二查询计划树,从而得到多个查询计划树。其中,对于生成的查询树,经由优化器计算查询树中各环节的代价,包括处理器计算代价、IO代价、通信代价;将计算出的代价添加到查询树中,得到对应的查询计划树。对于需要添加硬件计算处理的第一查询树,在其对应的第一查询计划树中,需要对应添加相应的硬件计算代价。其中,需要添加硬件计算处理的第一查询树,为包含需要卸载到异构硬件中进行计算的子查询任务的查询树,该子查询任务涉及需要卸载到异构硬件中执行的密集型运算。
可以理解的是,在对查询语句进行处理时,可以调用异构硬件参与计算,也可以不调用异构硬件参与计算,因此,生成的多个查询计划树中,可以包括需要添加异构硬件的计算处理节点的第一查询计划树,也可以包括不需要添加异构硬件的计算处理节点的第二查询计划树。
在本实施例中,通过数据库中适配的查询引擎,基于查询语句生成多个查询树,经由优化器处理,并在查询树中添加硬件计算处理,生成对应的查询计划树,实现对异构硬件的调用,可以将查询语句涉及的密集型运算卸载到异构硬件中执行,从而基于异构硬件的加速提高数据库的查询效率。
下面对本发明提供的数据库的查询处理装置进行描述,下文描述的数据库的查询处理装置与上文描述的数据库的查询处理方法可相互对应参照。
参照图3,本发明实施例提供的数据库的查询处理装置,包括:
语句处理模块10,用于获取所述数据库的查询语句,并基于所述查询语句生成多个查询计划树;
代价计算模块20,用于计算各所述查询计划树对应的目标总代价;所述目标总代价为根据所述查询计划树处理所述查询语句所需的总代价;所述总代价包括处理器代价、扫描磁盘代价、通信代价和所述异构硬件的硬件计算代价;
查询处理模块30,用于根据所述目标总代价从所述多个查询树中确定最优计划树,并根据所述最优计划树对所述查询语句进行处理。
在一个实施例中,所述数据库包括执行器适配层,所述执行器适配层中适配有执行器;所述查询处理模块30,还用于:
利用所述执行器适配层中适配的执行器,读取所述查询语句要查询的数据表的页面数据;
对所述页面数据进行封装,得到所述页面数据对应的数据包;
将所述数据包发送至所述异构硬件,以调用所述异构硬件根据所述最优计划树对所述查询语句进行处理。
在一个实施例中,所述数据库还包括硬件驱动层,所述硬件驱动层用于提供所述异构硬件的底层操作接口、管理所述异构硬件的内存和数据传输、启动所述异构硬件的计算资源以调用所述异构硬件进行计算;所述查询处理模块30,还用于:
通过所述硬件驱动层调用所述异构硬件的操作接口,并通过所述操作接口将所述数据包发送至所述异构硬件的缓存区;所述操作接口包括计算接口;
启动所述异构硬件的计算接口,以根据所述数据包调用所述异构硬件执行所述最优计划树中各节点对应的计算操作,对所述查询语句进行处理。
在一个实施例中,所述查询处理模块30,还用于:
将所述数据包中的数据解析为行数据;
获取所述最优计划树对应的计算策略,并确定所述计算策略对应的目标算子;
根据所述行数据和所述目标算子,调用所述异构硬件执行所述最优计划树中各节点对应的计算操作。
在一个实施例中,所述数据库还包括查询引擎适配层,所述查询引擎适配层适配有查询引擎;所述语句处理模块10,还用于:
通过所述查询引擎适配层适配的查询引擎,将所述查询语句解析为语法树;所述查询引擎包括查询器和优化器;
利用所述查询器和所述优化器,将所述语法树转换为多个查询树;
根据所述多个查询树生成多个查询计划树。
在一个实施例中,所述多个查询计划树包括第一查询计划树和第二查询计划树;所述语句处理模块10,还用于:
从所述多个查询树中确定需要调用所述异构硬件的第一查询树,以及不需要调用所述异构硬件的第二查询树;
将所述异构硬件的硬件计算处理,以及所述异构硬件对应的硬件计算代价添加到所述第一查询树中,生成所述第一查询树对应第一查询计划树;并生成所述第二查询树对应的第二查询计划树。
在一个实施例中,所述数据库还包括数据查询层,用于接收所述查询语句;所述数据库的查询处理装置还包括查询响应模块,用于:
获取对所述查询语句的处理结果,并将所述处理结果向所述数据查询层返回。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行数据库的查询处理方法,该方法包括:
获取所述数据库的查询语句,并基于所述查询语句生成多个查询计划树;
计算各所述查询计划树对应的目标总代价;所述目标总代价为根据所述查询计划树处理所述查询语句所需的总代价;所述总代价包括处理器代价、磁盘扫描代价、通信代价和所述异构硬件的硬件计算代价;
根据所述目标总代价从所述多个查询树中确定最优计划树,并根据所述最优计划树对所述查询语句进行处理。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的数据库的查询处理方法,该方法包括:
获取所述数据库的查询语句,并基于所述查询语句生成多个查询计划树;
计算各所述查询计划树对应的目标总代价;所述目标总代价为根据所述查询计划树处理所述查询语句所需的总代价;所述总代价包括处理器代价、磁盘扫描代价、通信代价和所述异构硬件的硬件计算代价;
根据所述目标总代价从所述多个查询树中确定最优计划树,并根据所述最优计划树对所述查询语句进行处理。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的数据库的查询处理方法,该方法包括:
获取所述数据库的查询语句,并基于所述查询语句生成多个查询计划树;
计算各所述查询计划树对应的目标总代价;所述目标总代价为根据所述查询计划树处理所述查询语句所需的总代价;所述总代价包括处理器代价、磁盘扫描代价、通信代价和所述异构硬件的硬件计算代价;
根据所述目标总代价从所述多个查询树中确定最优计划树,并根据所述最优计划树对所述查询语句进行处理。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据库的查询处理方法,应用于数据库,其特征在于,所述数据库包括异构硬件、扩展插件和存储引擎插件,所述扩展插件和所述存储引擎插件用于实现所述异构硬件与所述数据库的服务器之间的连接;所述异构硬件用于执行所述数据库的查询语句所涉及的密集型运算;所述方法包括以下步骤:
获取所述数据库的查询语句,并基于所述查询语句生成多个查询计划树;
计算各所述查询计划树对应的目标总代价;所述目标总代价为根据所述查询计划树处理所述查询语句所需的总代价;所述总代价包括处理器代价、扫描磁盘代价、通信代价和所述异构硬件的硬件计算代价;
根据所述目标总代价从所述多个查询树中确定最优计划树,并根据所述最优计划树对所述查询语句进行处理。
2.根据权利要求1所述的数据库的查询处理方法,其特征在于,所述数据库包括执行器适配层,所述执行器适配层中适配有执行器;所述根据所述最优计划树对所述查询语句进行处理的步骤,包括:
利用所述执行器适配层中适配的执行器,读取所述查询语句要查询的数据表的页面数据;
对所述页面数据进行封装,得到所述页面数据对应的数据包;
将所述数据包发送至所述异构硬件,以调用所述异构硬件根据所述最优计划树对所述查询语句进行处理。
3.根据权利要求2所述的数据库的查询处理方法,其特征在于,所述数据库还包括硬件驱动层,所述硬件驱动层用于提供所述异构硬件的底层操作接口、管理所述异构硬件的内存和数据传输、启动所述异构硬件的计算资源以调用所述异构硬件进行计算;
将所述数据包发送至所述异构硬件,以调用所述异构硬件根据所述最优计划树对所述查询语句进行处理的步骤,包括:
通过所述硬件驱动层调用所述异构硬件的操作接口,并通过所述操作接口将所述数据包发送至所述异构硬件的缓存区;所述操作接口包括计算接口;
启动所述异构硬件的计算接口,以根据所述数据包调用所述异构硬件执行所述最优计划树中各节点对应的计算操作,对所述查询语句进行处理。
4.根据权利要求3所述的数据库的查询处理方法,其特征在于,所述根据所述数据包调用所述异构硬件执行所述最优计划树中各节点对应的计算操作的步骤,包括:
将所述数据包中的数据解析为行数据;
获取所述最优计划树对应的计算策略,并确定所述计算策略对应的目标算子;
根据所述行数据和所述目标算子,调用所述异构硬件执行所述最优计划树中各节点对应的计算操作。
5.根据权利要求1所述的数据库的查询处理方法,其特征在于,所述数据库还包括查询引擎适配层,所述查询引擎适配层适配有查询引擎;所述基于所述查询语句生成多个查询计划树的步骤,包括:
通过所述查询引擎适配层适配的查询引擎,将所述查询语句解析为语法树;所述查询引擎包括查询器和优化器;
利用所述查询器和所述优化器,将所述语法树转换为多个查询树;
根据所述多个查询树生成多个查询计划树。
6.根据权利要求5所述的数据库的查询处理方法,其特征在于,所述多个查询计划树包括第一查询计划树和第二查询计划树,所述根据所述多个查询树生成多个查询计划树的步骤,包括:
从所述多个查询树中确定需要调用所述异构硬件的第一查询树,以及不需要调用所述异构硬件的第二查询树;
将所述异构硬件的硬件计算处理,以及所述异构硬件对应的硬件计算代价添加到所述第一查询树中,生成所述第一查询树对应第一查询计划树;并生成所述第二查询树对应的第二查询计划树。
7.根据权利要求1所述的数据库的查询处理方法,其特征在于,所述数据库还包括数据查询层,用于接收所述查询语句;所述根据所述最优计划树对所述查询语句进行处理之后,还包括:
获取对所述查询语句的处理结果,并将所述处理结果向所述数据查询层返回。
8.一种数据库的查询处理装置,其特征在于,包括:
语句处理模块,用于获取所述数据库的查询语句,并基于所述查询语句生成多个查询计划树;
代价计算模块,用于计算各所述查询计划树对应的目标总代价;所述目标总代价为根据所述查询计划树处理所述查询语句所需的总代价;所述总代价包括处理器代价、磁盘扫描代价、通信代价和所述异构硬件的硬件计算代价;
查询处理模块,用于根据所述目标总代价从所述多个查询树中确定最优计划树,并根据所述最优计划树对所述查询语句进行处理。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述数据库的查询处理方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据库的查询处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211339172.2A CN115757477A (zh) | 2022-10-28 | 2022-10-28 | 数据库的查询处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211339172.2A CN115757477A (zh) | 2022-10-28 | 2022-10-28 | 数据库的查询处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115757477A true CN115757477A (zh) | 2023-03-07 |
Family
ID=85354249
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211339172.2A Pending CN115757477A (zh) | 2022-10-28 | 2022-10-28 | 数据库的查询处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115757477A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627892A (zh) * | 2023-05-31 | 2023-08-22 | 中国人民解放军国防科技大学 | 一种数据近存储计算方法、装置和存储介质 |
CN117435594A (zh) * | 2023-12-18 | 2024-01-23 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库分布键的优选方法 |
-
2022
- 2022-10-28 CN CN202211339172.2A patent/CN115757477A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116627892A (zh) * | 2023-05-31 | 2023-08-22 | 中国人民解放军国防科技大学 | 一种数据近存储计算方法、装置和存储介质 |
CN116627892B (zh) * | 2023-05-31 | 2024-05-07 | 中国人民解放军国防科技大学 | 一种数据近存储计算方法、装置和存储介质 |
CN117435594A (zh) * | 2023-12-18 | 2024-01-23 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库分布键的优选方法 |
CN117435594B (zh) * | 2023-12-18 | 2024-04-16 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库分布键的优选方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115757477A (zh) | 数据库的查询处理方法、装置、设备及存储介质 | |
CN117076719B (zh) | 一种基于大语言模型的数据库联合查询方法、装置和设备 | |
CN111625558A (zh) | 一种服务器架构及其数据库查询方法和存储介质 | |
CN110362617B (zh) | 基于多并发技术从数据库快速导出批量数据方法和系统 | |
CN110569312B (zh) | 一种基于gpu的大数据快速检索系统及其使用方法 | |
US11169847B1 (en) | Method and device for processing distributed data solving problem of manual intervention by data analysts | |
CN108460068B (zh) | 报表导入导出的方法、装置、存储介质及终端 | |
CN112559567A (zh) | 适用于olap查询引擎的查询方法及装置 | |
CN110674205B (zh) | 单表查询方法、装置、终端及可读存储介质 | |
CN113918605A (zh) | 数据查询方法、装置、设备以及计算机存储介质 | |
CN102789488B (zh) | 数据查询处理系统和数据查询处理方法 | |
US20230153286A1 (en) | Method and system for hybrid query based on cloud analysis scene, and storage medium | |
CN111221860A (zh) | 基于大数据的混合查询优化方法及装置 | |
CN113448967B (zh) | 一种对数据库操作进行加速的方法和装置 | |
CN111562937A (zh) | 一种代码方法级缺陷预警方法 | |
CN107562943B (zh) | 一种数据计算的方法及系统 | |
CN111159213A (zh) | 一种数据查询方法、装置、系统和存储介质 | |
CN112199401B (zh) | 数据请求处理方法、装置、服务器、系统及存储介质 | |
CN114547007A (zh) | 一种大数据特征提取方法、设备及计算机可读存储介质 | |
CN114138828A (zh) | 数据连接方法、装置、电子设备、存储介质及程序产品 | |
CN113688151A (zh) | 基于虚拟数据库的数据访问方法、装置、系统、设备和介质 | |
CN113742364A (zh) | 数据访问方法、装置、电子设备、存储介质及程序产品 | |
CN114090614A (zh) | 一种数据查询方法及装置 | |
US11734291B2 (en) | Parallel execution of API calls using local memory of distributed computing devices | |
US20230153306A1 (en) | Offloading data interfacing method between dbms storage engine and computational storage device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |