CN116226175A - 结构化查询语言语句分发方法、分布式数据库和存储介质 - Google Patents

结构化查询语言语句分发方法、分布式数据库和存储介质 Download PDF

Info

Publication number
CN116226175A
CN116226175A CN202211654111.5A CN202211654111A CN116226175A CN 116226175 A CN116226175 A CN 116226175A CN 202211654111 A CN202211654111 A CN 202211654111A CN 116226175 A CN116226175 A CN 116226175A
Authority
CN
China
Prior art keywords
query language
structured query
complexity
language statement
statistical information
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
Application number
CN202211654111.5A
Other languages
English (en)
Inventor
龙涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jinzhuan Xinke Co Ltd
Original Assignee
Jinzhuan Xinke Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jinzhuan Xinke Co Ltd filed Critical Jinzhuan Xinke Co Ltd
Priority to CN202211654111.5A priority Critical patent/CN116226175A/zh
Publication of CN116226175A publication Critical patent/CN116226175A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种结构化查询语言语句分发方法、分布式数据库和存储介质。其中,方法包括当接收到客户端发送的结构化查询语言语句后,根据所述结构化查询语言语句生成对应的执行计划树;对所述执行计划树进行分析,确定所述结构化查询语言语句的复杂度和数据量;根据所述复杂度和/或所述数据量,确定所述结构化查询语言语句的分发执行对象。本发明提供的方案可以根据结构化查询语言语句的复杂度和/或数据量,自适应确定结构化查询语言语句的分发执行对象,可提高结构化查询语言语句的执行速度,充分合理利用系统资源。

Description

结构化查询语言语句分发方法、分布式数据库和存储介质
技术领域
本发明涉及数据库技术领域,尤其涉及一种结构化查询语言语句分发方法、分布式数据库和存储介质。
背景技术
随着信息社会的蓬勃发展,传统的集中式数据库越来越无法满足海量数据交易的需求。而分布式数据库具有高水平扩展性、高可用性和强一致性等特征,可以满足这种数据爆发式增长所带来的数据存储容量需求和海量数据处理时延需求。
分布式数据库通过不同的分发规则将数据存储在不同的数据节点中,当数据库服务器收到客户端发来的结构化查询语言语句(Structured Query Language,简称SQL语句)时,首先会生成语法树,通过语法树生成执行计划树,然后将执行计划下发到数据节点上去执行。但是在面对非常复杂的SQL语句或数据量非常大的SQL语句时,计算节点的计算压力将会变大,同时计算的时间也将变长,无法满足当前的业务需求。
发明内容
为解决当前数据库系统在执行SQL语句时,由于SQL语句的复杂度大或者数据量大,处理速度无法满足当前业务需求的技术问题,本发明实施例提供一种结构化查询语言语句分发方法、分布式数据库和存储介质。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种结构化查询语言语句分发方法,方法包括:
当接收到客户端发送的结构化查询语言语句后,根据所述结构化查询语言语句生成对应的执行计划树;
对所述执行计划树进行分析,确定所述结构化查询语言语句的复杂度和数据量;
根据所述复杂度和/或所述数据量,确定所述结构化查询语言语句的分发执行对象。
在一实施例中,对所述执行计划树进行分析,确定所述结构化查询语言语句的复杂度,包括:
当所述执行计划树的每个执行节点存在where、groupby、orderby、distinct、limit、或聚合函数时,计算一个复杂;
当from后接一个子查询时,计算一个复杂度;
遍历执行计划树的每个执行节点,获得总复杂度。
在一实施例中,对所述执行计划树进行分析,确定所述结构化查询语言语句的复杂度之后,所述方法还包括:
将所述复杂度与预设阈值进行比较;
在所述复杂度大于所述预设阈值的情况下,判定所述所述结构化查询语言语句的复杂度为高复杂度;
在所述复杂度小于或等于所述预设阈值的情况下,判定所述所述结构化查询语言语句的复杂度为低复杂度。
在一实施例中,对所述执行计划树进行分析,确定所述结构化查询语言语句的数据量,包括:
从中央管理模块获取表的统计信息;
根据所述表的统计信息确定所述结构化查询语言语句的数据量。
在一实施例中,所述根据所述表的统计信息确定所述结构化查询语言语句的数据量,包括:
根据所述表的统计信息利用如下公式(1)确定所述结构化查询语言语句的数据量:
T=A1*A2*(1+B1+B2+B3+B4+B5) 公式(1)
其中,T为结构化查询语言语句的数据量,A1为表的行数,A2为表的行平均长度,B1为bool(exists where),B2为bool(exists groupby),B3为bool(exists orderby),B4为bool(exists distinct),B5为bool(exists limit)。
在一实施例中,所述从中央管理模块获取表的统计信息,包括:
计算节点启动时自动从中央管理模块中获取表的统计信息;或者,
通过命令的方式从中央管理模块中获取表的统计信息;或者,
接收中央管理模块定时推送的表的统计信息。
在一实施例中,所述接收中央管理模块定时推送的表的统计信息,包括:
定时对中央管理模块和计算节点中的表的统计信息进行比对,计算差异数据量;
在所述差异数据量大于预定值的情况下,接收中央管理模块推送的表的统计信息。
在一实施例中,所述根据所述复杂度和/或所述数据量,确定所述结构化查询语言语句的分发执行对象,包括:
在所述结构化查询语言语句的复杂度高或所述结构化查询语言语句的数据量大时,确定所述结构化查询语言语句的分发执行对象为大规模并行处理节点;
在所述结构化查询语言语句的复杂度低和所述结构化查询语言语句的数据量小时,确定所述结构化查询语言语句的分发执行对象为计算节点。
本发明实施例还提供了一种分布式数据库,所述分布式数据库执行上述任一方法的步骤。
本发明实施例还提供了一种存储介质,存储介质中存储有计算机程序,计算机程序被处理器执行时,实现上述任一方法的步骤。
本发明实施例提供的结构化查询语言语句分发方法、分布式数据库和存储介质,当接收到客户端发送的结构化查询语言语句后,根据所述结构化查询语言语句生成对应的执行计划树;对所述执行计划树进行分析,确定所述结构化查询语言语句的复杂度和数据量;根据所述复杂度和/或所述数据量,确定所述结构化查询语言语句的分发执行对象。本发明提供的方案可以根据结构化查询语言语句的复杂度和/或数据量,自适应确定结构化查询语言语句的分发执行对象,可提高结构化查询语言语句的执行速度,充分合理利用系统资源。
附图说明
图1为本发明实施例结构化查询语言语句分发方法的流程示意图;
图2为本发明实施例自适应路由执行流程示意图;
图3为本发明实施例复杂度计算流程示意图;
图4为本发明实施例数据量计算流程示意图;
图5为本发明实施例计算机设备的内部结构图。
具体实施方式
下面将结合附图及实施例对本发明作进一步详细的描述。
本发明实施例提供了一种结构化查询语言语句分发方法,如图1所示,该方法包括:
步骤101:当接收到客户端发送的结构化查询语言语句后,根据所述结构化查询语言语句生成对应的执行计划树;
步骤102:对所述执行计划树进行分析,确定所述结构化查询语言语句的复杂度和数据量;
步骤103:根据所述复杂度和/或所述数据量,确定所述结构化查询语言语句的分发执行对象。
本实施例方案可用于高效处理复杂SQL语句和巨大数据量SQL语句。
本发明实施例,当客户端SQL语句发送到数据库系统服务端后,生成对应的执行计划树,对执行计划树进行分析,分析出此SQL语句的复杂度及所涉及的数据量,再通过结合下发策略和语句的复杂度及所涉及的数据量决定此SQL语句的下发执行对象。以此来自适应不同复杂度和数据量的业务,将其分发到不同的执行模块去执行,充分利用系统资源。
在一实施例中,对所述执行计划树进行分析,确定所述结构化查询语言语句的复杂度,包括:
当所述执行计划树的每个执行节点存在where、groupby、orderby、distinct、limit、或聚合函数时,计算一个复杂;
当from后接一个子查询时,计算一个复杂度;
遍历执行计划树的每个执行节点,获得总复杂度。
实际应用时,在计算复杂度时,当执行计划树的每个执行节点存在where、groupby、orderby、distinct、limit、聚合函数时,都算做一个复杂度。from后接一个子查询,算一个复杂度。所有复杂度相加获得总复杂度。
在一实施例中,对所述执行计划树进行分析,确定所述结构化查询语言语句的复杂度之后,所述方法还包括:
将所述复杂度与预设阈值进行比较;
在所述复杂度大于所述预设阈值的情况下,判定所述所述结构化查询语言语句的复杂度为高复杂度;
在所述复杂度小于或等于所述预设阈值的情况下,判定所述所述结构化查询语言语句的复杂度为低复杂度。
这里,可基于使用情况设置预设预置。当一条SQL的总复杂度超过这个阈值时,为高复杂度SQL;当一条SQL的总复杂度低于或等于这个阈值时,为低复杂度SQL。
在一实施例中,对所述执行计划树进行分析,确定所述结构化查询语言语句的数据量,包括:
从中央管理模块获取表的统计信息;
根据所述表的统计信息确定所述结构化查询语言语句的数据量。
这里,在中央管理模块中存放的表的统计信息包括:表的行数(TABLE_ROWS)和表的行平均长度(AVG_ROW_LENGTH)。
具体地,在一实施例中,所述根据所述表的统计信息确定所述结构化查询语言语句的数据量,包括:
根据所述表的统计信息利用如下公式(1)确定所述结构化查询语言语句的数据量:
T=A1*A2*(1+B1+B2+B3+B4+B5) 公式(1)
其中,T为结构化查询语言语句的数据量,A1为表的行数,A2为表的行平均长度,B1为bool(exists where),B2为bool(exists groupby),B3为bool(exists orderby),B4为bool(exists distinct),B5为bool(exists limit)。
在一实施例中,所述从中央管理模块获取表的统计信息,包括:
计算节点启动时自动从中央管理模块中获取表的统计信息;或者,
通过命令的方式从中央管理模块中获取表的统计信息;或者,
接收中央管理模块定时推送的表的统计信息。
具体地,统计信息的推送方式分为:(1)CN启动时会自动从中央管理模块获取统计信息;(2)可以通过命令的方式从中央管理模块获取统计信息;(3)中央管理模块定时向CN推送统计信息。
在一实施例中,所述接收中央管理模块定时推送的表的统计信息,包括:
定时对中央管理模块和计算节点中的表的统计信息进行比对,计算差异数据量;
在所述差异数据量大于预定值的情况下,接收中央管理模块推送的表的统计信息。
具体地,统计信息推送策略分为:(1)定时对中央管理模块和CN的统计信息进行比对推送;(2)统计差异数据量,当差异数据量超过预定值时,进行新一轮信息推送,否则不推送。
另外,统计信息的更新方式分为:(1)中央管理模块定时更新统计信息;(2)服务器启动,表数据更新,和analyze table时会更新统计信息。
在一实施例中,所述根据所述复杂度和/或所述数据量,确定所述结构化查询语言语句的分发执行对象,包括:
在所述结构化查询语言语句的复杂度高或所述结构化查询语言语句的数据量大时,确定所述结构化查询语言语句的分发执行对象为大规模并行处理节点(MassivelyParallel Processing,简称MPP节点);
在所述结构化查询语言语句的复杂度低和所述结构化查询语言语句的数据量小时,确定所述结构化查询语言语句的分发执行对象为计算节点(CN节点)。
本实施例中,由于MPP节点不支持事务且需要消耗大量内存资源,且在处理简单的SQL语句时,MPP执行速度并不比CN节点快,甚至有的SQL语句执行会比CN节点慢。因此,本实施例对SQL语句进行分析,自适应确定SQL语句的下发执行对象,自动将SQL语句下发至CN节点或是MPP节点。当系统需要处理复杂SQL、巨大数据量SQL时,将这些SQL下发给MPP去执行。当需要处理事务或是复杂度较低、数据量量较低的SQL时,将其下发给CN执行,可充分利用系统资源。
下面,将结合图2,举例一详细实施例说明自适应业务路由功能的执行过程。具体包括:
步骤1:服务器端接收到SQL语句。
步骤2:CN对SQL语句进行分析,生成执行计划树。
步骤3:自适应业务路由功能对执行计划树进行分析,计算出SQL语句的复杂度和数据量。
步骤4:自适应业务路由功能通过结合步骤3得到的SQL语句的复杂度和数据量和下发策略,决定SQL语句下发执行对象。
步骤5:当SQL语句复杂度和数据量较低时,下发给CN执行。当SQL语句复杂度和数据量较高时,下发给MPP执行。
步骤6:CN或MPP执行完成后,返回执行结果集。
步骤7:服务器端将结果集返回给客户端。
进一步地,参见图3,本实施例中,复杂度计算流程具体如下:
服务端接收到SQL;生成执行计划树;遍历执行计划树;是否存在计数条件;存在计数条件时,复杂度+1,不存在计数条件时,返回继续执行遍历执行计划树,判断是否遍历结束,当遍历结束时,返回复杂度,当遍历未结束时,继续遍历执行计划树。
这里,“是否存在计数条件”是指在执行节点是否存在where、groupby、orderby、distinct、limit、聚合函数,from是否存在子查询。
进一步地,参见图4,本实施例中,数据量计算流程具体如下:
服务器接收到SQL;生成执行计划树;遍历执行计划树,统计数据量计量因子;计算节点获取从中央管理模块获取统计信息;计算数据量,返回数据量,结束。
这里,计算节点定时从中央管理模块获取统计信息;或者启动时从中央管理模块获取统计信息;或者差异数据量超过阈值时,从中央管理模块获取统计信息;或者通过命令的方式从中央管理模块获取统计信息。
本发明方法,可以在分布式数据库面对不同复杂度和数据量SQL时能够自适应地采取不同的路由方案,提高SQL执行速度,能够充分合理的利用系统资源。同时,本发明能提高分布式数据库的兼容性,扩大分布式数据库的适用范围。
本发明实施例提供的结构化查询语言语句分发方法,当接收到客户端发送的结构化查询语言语句后,根据所述结构化查询语言语句生成对应的执行计划树;对所述执行计划树进行分析,确定所述结构化查询语言语句的复杂度和数据量;根据所述复杂度和/或所述数据量,确定所述结构化查询语言语句的分发执行对象。本发明提供的方案可以根据结构化查询语言语句的复杂度和/或数据量,自适应确定结构化查询语言语句的分发执行对象,可提高结构化查询语言语句的执行速度,充分合理利用系统资源。
为了实现本发明实施例的方法,本发明实施例还提供了一种分布式数据库,所述分布式数据库执行上述方法的步骤。
为了实现本发明实施例的方法,本发明实施例还提供了一种计算机程序产品,计算机程序产品包括计算机指令,计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取计算机指令,处理器执行计算机指令,使得计算机设备执行上述方法的步骤。
基于上述程序模块的硬件实现,且为了实现本发明实施例的方法,本发明实施例还提供了一种电子设备(计算机设备)。具体地,在一个实施例中,该计算机设备可以是终端,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器A01、网络接口A02、显示屏A04、输入装置A05和存储器(图中未示出)。其中,该计算机设备的处理器A01用于提供计算和控制能力。该计算机设备的存储器包括内存储器A03和非易失性存储介质A06。该非易失性存储介质A06存储有操作系统B01和计算机程序B02。该内存储器A03为非易失性存储介质A06中的操作系统B01和计算机程序B02的运行提供环境。该计算机设备的网络接口A02用于与外部的终端通过网络连接通信。该计算机程序被处理器A01执行时以实现上述任意一项实施例的方法。该计算机设备的显示屏A04可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置A05可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本发明实施例提供的设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现上述任意一项实施例的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
可以理解,本发明实施例的存储器可以是易失性存储器或者非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,ReadOnly Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,RandomAccess Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种结构化查询语言语句分发方法,其特征在于,所述方法包括:
当接收到客户端发送的结构化查询语言语句后,根据所述结构化查询语言语句生成对应的执行计划树;
对所述执行计划树进行分析,确定所述结构化查询语言语句的复杂度和数据量;
根据所述复杂度和/或所述数据量,确定所述结构化查询语言语句的分发执行对象。
2.根据权利要求1所述的方法,其特征在于,对所述执行计划树进行分析,确定所述结构化查询语言语句的复杂度,包括:
当所述执行计划树的每个执行节点存在where、groupby、orderby、distinct、limit、或聚合函数时,计算一个复杂;
当from后接一个子查询时,计算一个复杂度;
遍历执行计划树的每个执行节点,获得总复杂度。
3.根据权利要求2所述的方法,其特征在于,对所述执行计划树进行分析,确定所述结构化查询语言语句的复杂度之后,所述方法还包括:
将所述复杂度与预设阈值进行比较;
在所述复杂度大于所述预设阈值的情况下,判定所述所述结构化查询语言语句的复杂度为高复杂度;
在所述复杂度小于或等于所述预设阈值的情况下,判定所述所述结构化查询语言语句的复杂度为低复杂度。
4.根据权利要求1所述的方法,其特征在于,对所述执行计划树进行分析,确定所述结构化查询语言语句的数据量,包括:
从中央管理模块获取表的统计信息;
根据所述表的统计信息确定所述结构化查询语言语句的数据量。
5.根据权利要求4所述的方法,其特征在于,所述根据所述表的统计信息确定所述结构化查询语言语句的数据量,包括:
根据所述表的统计信息利用如下公式(1)确定所述结构化查询语言语句的数据量:
T=A1*A2*(1+B1+B2+B3+B4+B5) 公式(1)
其中,T为结构化查询语言语句的数据量,A1为表的行数,A2为表的行平均长度,B1为bool(exists where),B2为bool(exists groupby),B3为bool(exists orderby),B4为bool(exists distinct),B5为bool(exists limit)。
6.根据权利要求4所述的方法,其特征在于,所述从中央管理模块获取表的统计信息,包括:
计算节点启动时自动从中央管理模块中获取表的统计信息;或者,
通过命令的方式从中央管理模块中获取表的统计信息;或者,
接收中央管理模块定时推送的表的统计信息。
7.根据权利要求6所述的方法,其特征在于,所述接收中央管理模块定时推送的表的统计信息,包括:
定时对中央管理模块和计算节点中的表的统计信息进行比对,计算差异数据量;
在所述差异数据量大于预定值的情况下,接收中央管理模块推送的表的统计信息。
8.根据权利要求1所述的方法,其特征在于,所述根据所述复杂度和/或所述数据量,确定所述结构化查询语言语句的分发执行对象,包括:
在所述结构化查询语言语句的复杂度高或所述结构化查询语言语句的数据量大时,确定所述结构化查询语言语句的分发执行对象为大规模并行处理节点;
在所述结构化查询语言语句的复杂度低和所述结构化查询语言语句的数据量小时,确定所述结构化查询语言语句的分发执行对象为计算节点。
9.一种分布式数据库,其特征在于,所述分布式数据库执行权利要求1至7任一项所述方法的步骤。
10.一种存储介质,所述存储介质中存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1至7任一项所述方法的步骤。
CN202211654111.5A 2022-12-20 2022-12-20 结构化查询语言语句分发方法、分布式数据库和存储介质 Pending CN116226175A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211654111.5A CN116226175A (zh) 2022-12-20 2022-12-20 结构化查询语言语句分发方法、分布式数据库和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211654111.5A CN116226175A (zh) 2022-12-20 2022-12-20 结构化查询语言语句分发方法、分布式数据库和存储介质

Publications (1)

Publication Number Publication Date
CN116226175A true CN116226175A (zh) 2023-06-06

Family

ID=86588167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211654111.5A Pending CN116226175A (zh) 2022-12-20 2022-12-20 结构化查询语言语句分发方法、分布式数据库和存储介质

Country Status (1)

Country Link
CN (1) CN116226175A (zh)

Similar Documents

Publication Publication Date Title
US11734271B2 (en) Data query method, apparatus and device
CN109947668B (zh) 存储数据的方法和装置
US10922316B2 (en) Using computing resources to perform database queries according to a dynamically determined query size
CN109240946A (zh) 数据的多级缓存方法及终端设备
CN108959510B (zh) 一种分布式数据库的分区级连接方法和装置
CN102054000B (zh) 数据查询方法、装置及系统
CN108664516A (zh) 查询优化方法及相关装置
CN115114374B (zh) 事务执行方法、装置、计算设备及存储介质
US10776368B1 (en) Deriving cardinality values from approximate quantile summaries
US20240078220A1 (en) Hyperparameter tuning in a database environment
CN114238389A (zh) 数据库查询优化方法、装置、电子设备、介质和程序产品
CN112000703A (zh) 数据入库处理方法、装置、计算机设备和存储介质
CN109299175B (zh) 数据库动态扩展方法、系统、装置和存储介质
CN116226175A (zh) 结构化查询语言语句分发方法、分布式数据库和存储介质
CN112541001A (zh) 数据查询方法、装置、存储介质及设备
CN113656469B (zh) 大数据处理方法及装置
CN115248815A (zh) 预测查询处理
US9063773B2 (en) Automatic parallelism tuning for apply processes
CN109543079B (zh) 数据查询方法、装置、计算设备及存储介质
CN113177089A (zh) 一种分布式数据存储引擎调度方法
WO2017027015A1 (en) Distribute execution of user-defined function
CN113282624B (zh) 规则匹配方法、装置、电子设备及存储介质
CN106557469A (zh) 一种处理数据仓库中数据的方法及装置
Zulfa et al. CACHE DATA REPLACEMENT POLICY BASED ON RECENTLY USED ACCESS DATA AND EUCLIDEAN DISTANCE
CN117573733A (zh) 一种异构数据库的查询方法、装置、设备和存储介质

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