CN111506602A - 数据查询方法、装置、设备和存储介质 - Google Patents
数据查询方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN111506602A CN111506602A CN202010311985.5A CN202010311985A CN111506602A CN 111506602 A CN111506602 A CN 111506602A CN 202010311985 A CN202010311985 A CN 202010311985A CN 111506602 A CN111506602 A CN 111506602A
- Authority
- CN
- China
- Prior art keywords
- sub
- operator
- execution plan
- execution
- union set
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24544—Join order optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Operations Research (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据查询方法、装置、设备和存储介质。其中,该方法包括:确定SQL查询语句对应的至少一个子执行计划;根据并集集合运算符调整各所述子执行计划;将调整后的各所述子执行计划发送给执行节点执行以实现数据查询。本发明实施例基于并集集合运算符调整子执行计划,减少并集集合运算导致的查询等待时间和内存拷贝次数,提高数据查询效率,提升用户体验。
Description
技术领域
本发明实施例涉及计算机应用技术领域,尤其涉及一种数据查询方法、装置、设备和存储介质。
背景技术
数据库结构化查询语言(Structured Query Language,SQL)语句中并集集合运算UNION ALL,该运算用于将每个SQL语句查询分支的查询结果做并集后返回,UNION ALL不会对并集生成的数据做任何处理。
在现有数据库管理系统中实现并集集合运算UNION ALL的功能时,一般会定义一个专门的操作符实现UNION ALL的相关功能,例如,设定并集集合运算UNION ALL的操作符为SETUA,即使用SETUA操作符实现用户SQL语句中的UNION ALL并集集合运算功能。然而现有实现UNION ALL并集功能的数据库在实现SETUA操作符时,一般串行调度SETUA的各个子计划,由于SETUA操作符会在取得左孩子操作符的一批数据时向父操作符返回数据,因此,当不同孩子计划执行时间差别较大时,包含UNION ALL的SQL语句执行时的查询效率受到孩子计划排列顺序的影响。此外,SETUA操作符在获取子计划发送的数据并向上层操作符发送时,需要在操作符的内存缓存区进行一次数据拷贝,分布式环境下对数据库的性能开销产生较大影响。
发明内容
本发明提供一种数据查询方法、装置、设备和存储介质,以实现数据库查询时的并集集合运算功能,减少数据拷贝次数,提高数据的查询效率。
第一方面,本发明实施例提供了一种数据查询方法,其特征在于,该方法包括:
确定SQL查询语句对应的至少一个子执行计划;
根据并集集合运算符调整各所述子执行计划;
将调整后的各所述子执行计划发送给执行节点执行以实现数据查询。
第二方面,本发明实施例提供了一种数据查询装置,其特征在于,该装置包括:
计划确定模块,用于确定SQL查询语句对应的至少一个子执行计划;
计划调整模块,用于根据并集集合运算符调整各所述子执行计划;
数据查询模块,用于将调整后的各所述子执行计划发送给执行节点执行以实现数据查询。
第三方面,本发明实施例提供了一种设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明实施例中任一所述的数据查询方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例中任一所述的数据查询方法。
本发明实施例,通过确定SQL查询语句的子执行计划,基于并集集合运算符对子执行计划进行调整,调整后的子执行计划由执行节点执行,实现了分布式数据库的数据查询,提高数据查询效率,减少内存拷贝对数据库的性能开销影响。
附图说明
图1是现有技术中一种执行计划的示例图;
图2是本发明实施例一提供的一种数据查询方法的流程图;
图3是本发明实施例二提供的一种数据查询方法的流程图;
图4是本发明实施例二提供的一种执行计划的示例图;
图5是本发明实施例二提供的一种执行计划划分示例图;
图6是本发明实施例二提供的一种子执行计划调整示例图;
图7是本发明实施例二提供的另一种子执行计划调整示例图;
图8是本发明实施例三提供的一种数据查询装置的结构示意图;
图9是本发明实施例四提供的一种设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构,此外,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
现有技术中并集集合运算UNION ALL的操作符SETUA在执行时一般串行调度其各孩子操作符,例如,SQL查询语句查询表T1、T2中满足T1的C1列等于T2的D1列的数据,以及表T3、T4中满足T3的E1列等于T4的F1列的数据并集。SQL查询语句可以表示如下:
SELECT*FROM T1,T2 WHERE T1.C1=T2.D1
UNION ALL
SELECT*FROM T3,T4 WHERE T3.E1=T4.F1;
图1是现有技术中一种执行计划的示例图,相应的,SQL查询语句对应的执行计划如图1所示,将UNION ALL的操作符记为SETUA,用于将该操作符左孩子和右孩子的数据向上返回;将哈希连接操作符记为HASH JOIN,用于将左右孩子节点数据按照给定条件匹配并返回;将数据扫描操作符记为SCAN,用于获取某个表的记录并向上返回。相应的,该SQL查询语句中SETUA的执行流程为:步骤1、取左孩子数据并向上返回,如果全部取完,则转入步骤2,否则继续取左孩子数据向上返回。步骤2、取右孩子数据,如果全部取完则设置SETUA执行完毕,控制权交给父层节点,否则继续取右孩子数据。通过上述SETUA的执行过程中看出,如果T1、T2连接HASH JOIN 1匹配记录用时远大于T3、T4连接HASH JOIN 2的匹配记录用时,那么将HASH JOIN 2作为左孩子将会提高整体查询的响应时间。在一些分布式数据库环境下,允许SETUA的多个子操作符任务并行调度,但是发送操作符SEND发送的数据可能在接收操作符RECV接收数据时发生阻塞。另外,SETUA获取子节点发来的数据,并将数据发送给上层操作符时,需要在操作符的内存缓冲区中进行一次数据拷贝。而在分布式环境下,执行时的跨数据库实例和线程间数据传输也会引入新的数据交换和拷贝动作,降低数据库的数据查询性能。
实施例一
图2是本发明实施例一提供的一种数据查询方法的流程图,本实施例可适用于分布式数据库中实现并集集合运算的情况,该方法可以由数据查询装置来执行,该装置可以采用硬件和/或软件的方式来实现,参见图2,本发明实施例通常可以包括如下步骤:
步骤101、确定SQL查询语句对应的至少一个子执行计划。
其中,SQL查询语句是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理数据库系统。子执行计划可以是分布式数据库中各节点执行的查询计划,子执行计划共同实现SQL查询语句查询目标。每个子执行计划可以由数据库实例实现,多个数据库实例可以共同执行一个子执行计划。
具体的,对SQL查询语句进行分析生成各数据库实例执行的子执行计划,分析SQL查询语句的方式可以包括对SQL查询语句依次执行语法分析、语义分析和计划生成等过程,生成SQL查询语句的执行计划,然后将该执行计划分割为子执行计划。示例性的,在生成SQL查询语句对应的执行计划后,以数据发送操作符和数据接收操作符为界限分割执行计划得到一系列子执行计划。
步骤102、根据并集集合运算符调整各所述子执行计划。
其中,并集集合运算符可以是并集集合运算功能对应的操作符,例如并集集合运算符可以标记为SETUA,子执行计划执行UNION ALL并集集合运算时,该子执行计划内可以包括SETUA。
具体的,判断子执行计划是否存在并集集合运算符,当子执行计划存在并集集合运算符时,子执行计划对应的实例进行并集集合运算,该子执行计划内操作符以及操作符的执行顺序可以进行优化以提高数据库查询效率。当子执行计划不包括并集集合运算符时,子执行计划对应的实例不进行并集集合运算的加速优化,但是当该子执行计划的父层的子执行计划进行了集合运算优化时,该子执行计划的数据发送操作符的发送地址可能发生改变。
步骤103、将调整后的各所述子执行计划发送给执行节点执行以实现数据查询。
其中,执行节点可以是分布式数据库的组成部分,用于执行子执行计划实现数据查询。执行节点具体可以是分布式主机中运行的实例。
在本发明实施例中,调整后的子执行计划可以发送到各执行节点,由执行节点执行对应的子执行计划实现数据查询。可以理解的是,子执行计划与执行节点的对应关系可以为一对一、一对多、多对一和多对多等,例如,一个子执行计划可以发送到多个执行节点执行。执行节点可以包括本地主机,子执行计划调整后,可以直接由本地主机内的实例执行。
本发明实施例,通过确定SQL查询语句对应的子执行计划,根据并集集合运算符调整子执行计划,将调整后的子执行计划发送到执行节点操作以实现数据查询,通过并集集合运算符调整SQL查询语句对应的子执行计划,减少集合运算的内存拷贝次数,提高分布式数据库的数据查询效率。
实施例二
图3是本发明实施例二提供的一种数据查询方法的流程图,本发明实施例是以上述实施例为基础的具体化,通过并集集合运算符在子执行计划中的位置关系调整子执行计划,参见图3,本发明实施例的数据查询方法包括:
步骤201、接收用户输入的SQL查询语句。
本发明实施例适用于分布式数据库系统,用户登录分布式数据库系统的一个节点,该节点可以是分布式数据库系统中专门指定的节点,也可以是分布式数据库中任意节点,该节点负责接收用户的SQL查询语句。
步骤202、对所述SQL查询语句进行语法分析和语义分析后生成执行计划。
具体的,对SQL查询语句进行语法分析和语义分析生成该SQL查询语句对应的执行计划,其中,执行计划用于在数据库实例中执行以获取数据。
示例性的,可以通过创建语句在分布式环境下创建T1和T2两张分布表,表T1的分区P1存储在节点BP1上,分区P2存储在节点BP2上;表T2的分区P1存储在节点BP2上,分区P2存储在节点BP3上。创建语句如下所示:
CREATE TABLE T1(ID INT,C1 INT)PARTITION BY HASH(ID)
(PARTITION P1 STORAGE ON(BP1),PARTITION P2 STORAGE ON(BP2));
CREATE TABLE T2(ID INT,D1 INT)PARTITION BY HASH(ID)
(PARTITION P1 STORAGE ON(BP2),PARTITION P2 STORAGE ON(BP3));
根据上述两张分布表T1和T2,一个SQL查询语句可以表示如下:SELECT COUNT(*)FROM T1,T2 WHERE T1.C1=T2.D1 GROUP BY T1.ID。图4是本发明实施例二提供的一种执行计划的示例图,上述SQL查询语句对应的执行计划可以如图4所示,SQL查询语句的执行计划可以由四个子执行计划组成,每个子执行计划的唯一出口是发送操作符SEND,每个子执行计划的唯一入口可以是接收操作符RECV,其中,包含叶子操作符的子执行计划除外,当子执行计划为最底层的执行计划时,该执行计划的唯一入口可以为扫描操作符SCAN等叶子操作符。
步骤203、按照目标操作符将所述执行计划划分为至少一个子执行计划。
其中,目标操作符可以是将执行计划进行划分的操作符,执行计划中包括的子执行计划存在唯一出口和唯一入口,可以将唯一出口和唯一入口处的操作符作为目标操作符。
进一步的,目标操作符包括以下发送操作符SEND和/或接收操作符RECV。
其中,发送操作符SEND可以是子执行计划中的出口处的操作符号,可以将数据从当前子执行计划发送到其他子执行计划,接收操作符RECV可以是子执行计划中的入口处的操作符号,可以将数据从其他子执行计划中接收数据到当前子执行计划。发送操作符SEND将孩子节点的数据按照指定位置进行发送,发送方式又可以细分为哈希/广播/随机等;发送目标可以跨实例、相同实例,或者相同实例不同线程,但发送目标一定是位于不同子执行计划中的操作符号。接收操作符RECV则接受发送操作符SEND发送的数据。
具体的,可以在执行计划中查找目标操作符,将目标操作符之间的部分执行计划作为子执行计划。图5是本发明实施例二提供的一种执行计划划分示例图,参见图5,根据发送操作符SEND或接收操作符RECV将执行计划划分为根计划、子计划1、子计划2和子计划3等子执行计划。
步骤204、当子执行计划中包括并集集合运算符且所述并集集合运算符的孩子节点为接收操作符RECV或并集集合运算符,则根据第一规则调整所述子执行计划。
其中,接收操作符RECV可以是子执行计划中的入口处的操作符号,可以将数据从其他子执行计划中接收数据到当前子执行计划。
具体的,当子执行计划内并集集合运算符的孩子节点为接收操作符RECV或另一个并集集合运算符时,可以通过第一规则对子执行计划进行调整,例如,可以将并集集合运算符从子执行计划中删除,或者,可以将并集集合运算符的父操作符的输入修改为并集集合运算符的输入。
进一步的,在上述发明实施例的基础上,所述第一规则包括:
将所述子执行计划内所述并集集合运算符以及所述并集集合运算符之下的所有运算符替换为接收操作符RECV。
具体的,第一规则是调整子执行计划中并集集合运算符的规则,可以将并集集合运算符替换为接收操作符RECV,图6是本发明实施例二提供的一种子执行计划调整示例图,参见图6,并集集合操作符SETUA的孩子节点为RECV1和RECV2,可以将SETUA、RECV1和RECV2替换为新的接收操作符RECV3,实现子执行计划的调整,可以降低并集集合运算过程的等待时间,减少并集集合运算的数据拷贝造成的性能开销,提高数据库的数据查询效率。示例性的,通过遍历拆分得到的一系列子执行计划,遍历每个子执行计划对应的操作符树,判断是否存在并集集合运算符的位置关系满足孩子节点为接收操作符RECV或并集集合运算符,当判定存在满足条件的并集集合运算符时,将符合要求的并集集合运算符和其下的接收操作符RECV从子执行计划对应的操作符树中摘除,可以通过调整操作符树的父子关系指针并插入新的接收操作符RECV。
步骤205、当子执行计划包括的操作符中包括并集集合运算符且所述并集集合运算符的孩子节点为接收操作符RECV或并集集合运算符,以及,在所述子执行计划内所述并集集合运算符之上除发送操作符SEND外无其他操作符,则根据第二规则调整所述子执行计划。
在本发明实施例中,当子执行计划内并集集合运算符的孩子节点为接收操作符RECV或并集集合运算符,并且并集集合运算符之上除了发送操作符SEND外无其他操作符,说明当前子执行计划中仅执行了并集集合运算,为了提高数据库的查找效率可以对该子执行计划根据第二规则进行调整,例如,可以将该子执行计划删除,同时,将该子执行计划的入口RECV所对应的SEND操作符发送地址修改为该子执行计划出口对应的子执行计划。
进一步的,在上述发明实施例的基础上,第二规则包括:
删除所述子执行计划,并将所述子执行计划中接收操作符RECV对应发送操作符SEND的发送地址替换为所述子执行计划中发送操作符SEND的对外输出地址。
其中,对外输出地址可以是数据发送的目标地址,可以与发送操作符SEND对应,对外输出地址具体为发送操作符SEND的属性信息。
具体的,第二规则是调整子执行计划中并集集合运算符的规则,可以将并集集合运算符从子执行计划中删除或者将该子执行计划删除。示例性的,图7是本发明实施例二提供的另一种子执行计划调整示例图,参见图7,子计划1的并集集合操作符SETUA的孩子节点为RECV1和RECV2,并且SETUA之上为子执行计划出口的发送操作符SEND,子计划1仅执行了并集集合运算操作。可以将子计划1删除,并将子计划1的接收操作符RECV1和接收操作符RECV2对应的子计划2的SEND1和子计划3的SEND2的发送地址修改为子计划1的发送操作符SEND的对外输出地址,也就是根计划的RECV的地址,实现第二规则的子执行计划调整,可以降低并集集合运算过程的等待时间,减少并集集合运算的数据拷贝造成的性能开销,提高数据库的数据查询效率。
步骤206、将调整后的各所述子执行计划发送给执行节点执行以实现数据查询。
具体的,调整后的子执行计划可以发送到各执行节点,由执行节点执行对应的子执行计划实现数据查询。可以理解的是,子执行计划与执行节点的对应关系可以为一对一、一对多、多对一和多对多等,例如,一个子执行计划可以发送到多个执行节点执行。执行节点可以包括本地主机,子执行计划调整后,可以直接由本地主机内的实例执行。
本发明实施例,通过接收用户输入的SQL查询语句,通过语法分析和语义分析生成SQL查询语句的执行计划,根据目标操作符将执行计划划分为至少一个子执行计划,若子执行计划中包括的并集集合运算符的孩子节点为接收操作符RECV或并集集合运算符,按照第一规则调整该子执行计划,若子执行计划中包括的并集集合运算符包括的孩子节点为接收操作符RECV或并集集合运算符,且并集集合运算符之上除了发送操作符SEND外无其他操作符,按照第二规则调整该子执行计划,将调整后的子执行计划发送到执行节点执行以实现数据查询操作。本发明实施例通过并集集合运算符在子执行计划中的位置关系对子执行计划进行调整,实现了运算等待时间的减少,降低了数据拷贝次数,提高了分布式数据库的数据查询效率。
实施例三
图8是本发明实施例三提供的一种数据查询装置的结构示意图,可执行本发明任意实施例所提供的数据查询方法,具备执行方法相应的功能模块和有益效果。该装置可以由软件和/或硬件实现,具体包括:计划确定模块301、计划调整模块302和数据查询模块303。
计划确定模块301,用于确定SQL查询语句对应的至少一个子执行计划。
计划调整模块302,用于根据并集集合运算符调整各所述子执行计划。
数据查询模块303,用于将调整后的各所述子执行计划发送给执行节点执行以实现数据查询。
本发明实施例,通过计划确定模块确定SQL查询语句对应的子执行计划,计划调整模块根据并集集合运算符调整子执行计划,数据查询模块将调整后的子执行计划发送到执行节点操作以实现数据查询,通过预设条件调整SQL查询语句对应的子执行计划,减少并集集合运算的内存拷贝次数,提高分布式数据库的数据查询效率。
进一步的,在上述发明实施例的基础上,计划确定模块301包括:
语句分析单元,用于对所述SQL查询语句进行语法分析和语义分析后生成执行计划。
计划划分单元,用于按照目标操作符将所述执行计划划分为至少一个子执行计划。
进一步的,在上述发明实施例的基础上,计划划分单元中目标操作符包括发送操作符SEND和/或接收操作符RECV。
进一步的,在上述发明实施例的基础上,计划调整模块302包括:
第一调整单元,用于当子执行计划中包括并集集合运算符且所述并集集合运算符的孩子节点为接收操作符RECV或并集集合运算符,则根据第一规则调整所述子执行计划。
第二调整单元,用于当子执行计划中包括并集集合运算符且所述并集集合运算符的孩子节点为接收操作符RECV或并集集合运算符,以及,在所述子执行计划内所述并集集合运算符之上除发送操作符SEND外无其他操作符,则根据第二规则调整所述子执行计划。
进一步的,在上述发明实施例的基础上,所述第一规则包括:
将所述子执行计划内所述并集集合运算符以及所述并集集合运算符之下的所有运算符替换为接收操作符RECV。
进一步的,在上述发明实施例的基础上,所述第二规则包括:
删除所述子执行计划,并将所述子执行计划中接收操作符RECV对应发送操作符SEND的发送地址替换为所述子执行计划中发送操作符SEND的对外输出地址。
进一步的,在上述发明实施例的基础上,还包括:
语句接收模块,用于接收用户输入的SQL查询语句。
实施例四
图9是本发明实施例四提供的一种设备的结构示意图,如图9所示,该设备包括处理器40、存储器41、输入装置42和输出装置43;设备中处理器40的数量可以是一个或多个,图9中以一个处理器40为例;设备中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图9中以通过总线连接为例。
存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的数据查询方法对应的程序模块(例如,数据查询装置中的计划确定模块301、计划调整模块302和数据查询模块303)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的数据查询方法。
存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置42可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置43可包括显示屏等显示设备。
实施例五
本发明实施例五还提供一种包含计算机可读存储介质,其上存储的计算机程序在由计算机处理器执行时用于执行一种数据查询方法,该方法包括:
确定SQL查询语句对应的至少一个子执行计划;
根据并集集合运算符调整各所述子执行计划;
将调整后的各所述子执行计划发送给执行节点执行以实现数据查询。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的数据查询方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述数据查询装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种数据查询方法,其特征在于,所述方法包括:
确定SQL查询语句对应的至少一个子执行计划;
根据并集集合运算符调整各所述子执行计划;
将调整后的各所述子执行计划发送给执行节点执行以实现数据查询。
2.根据权利要求1所述的方法,其特征在于,所述确定SQL查询语句对应的至少一个子执行计划,包括:
对所述SQL查询语句进行语法分析和语义分析后生成执行计划;
按照目标操作符将所述执行计划划分为至少一个子执行计划。
3.根据权利要求2所述的方法,其特征在于,所述目标操作符包括发送操作符SEND和/或接收操作符RECV。
4.根据权利要求2所述的方法,其特征在于,所述根据并集集合运算符调整各所述子执行计划,包括:
当子执行计划中包括并集集合运算符且所述并集集合运算符的孩子节点为接收操作符RECV或并集集合运算符,则根据第一规则调整所述子执行计划;
当子执行计划中包括并集集合运算符且所述并集集合运算符的孩子节点为接收操作符RECV或并集集合运算符,以及,在所述子执行计划内所述并集集合运算符之上除发送操作符SEND外无其他操作符,则根据第二规则调整所述子执行计划。
5.根据权利要求4所述的方法,其特征在于,所述第一规则包括:
将所述子执行计划内所述并集集合运算符以及所述并集集合运算符之下的所有运算符替换为接收操作符RECV。
6.根据权利要求4所述的方法,其特征在于,所述第二规则包括:
删除所述子执行计划,并将所述子执行计划中接收操作符RECV对应发送操作符SEND的发送地址替换为所述子执行计划中发送操作符SEND的对外输出地址。
7.根据权利要求1-6任一所述的方法,其特征在于,还包括:接收用户输入的SQL查询语句。
8.一种数据查询装置,其特征在于,所述装置包括:
计划确定模块,用于确定SQL查询语句对应的至少一个子执行计划;
计划调整模块,用于根据并集集合运算符调整各所述子执行计划;
数据查询模块,用于将调整后的各所述子执行计划发送给执行节点执行以实现数据查询。
9.一种设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一所述的数据查询方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010311985.5A CN111506602B (zh) | 2020-04-20 | 2020-04-20 | 数据查询方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010311985.5A CN111506602B (zh) | 2020-04-20 | 2020-04-20 | 数据查询方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111506602A true CN111506602A (zh) | 2020-08-07 |
CN111506602B CN111506602B (zh) | 2023-05-09 |
Family
ID=71869422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010311985.5A Active CN111506602B (zh) | 2020-04-20 | 2020-04-20 | 数据查询方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111506602B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035523A (zh) * | 2020-08-25 | 2020-12-04 | 上海达梦数据库有限公司 | 一种并行度的确定方法、装置、设备及存储介质 |
CN112100199A (zh) * | 2020-09-21 | 2020-12-18 | 上海达梦数据库有限公司 | 一种基于数据集分组的分析方法、装置、设备及介质 |
CN112202859A (zh) * | 2020-09-22 | 2021-01-08 | 北京人大金仓信息技术股份有限公司 | 数据传输方法和数据库系统 |
CN113420033A (zh) * | 2021-08-17 | 2021-09-21 | 蚂蚁金服(杭州)网络技术有限公司 | 分布式数据库的表数据查询方法、表数据查询装置及系统 |
CN113704329A (zh) * | 2021-09-03 | 2021-11-26 | 上海达梦数据库有限公司 | 一种改变数据分布的方法、装置、设备及存储介质 |
CN113934763A (zh) * | 2021-12-17 | 2022-01-14 | 北京奥星贝斯科技有限公司 | 分布式数据库的sql查询方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110022583A1 (en) * | 2009-07-23 | 2011-01-27 | International Business Machines Corporation | SQL Queries For Simple Network Management Protocol Management Information Base Tables |
CN109241100A (zh) * | 2018-08-23 | 2019-01-18 | 上海达梦数据库有限公司 | 一种查询方法、装置、设备及存储介质 |
CN110471935A (zh) * | 2019-08-15 | 2019-11-19 | 上海达梦数据库有限公司 | 一种数据操作的执行方法、装置、设备和存储介质 |
CN110515973A (zh) * | 2019-08-30 | 2019-11-29 | 上海达梦数据库有限公司 | 一种数据查询的优化方法、装置、设备及存储介质 |
-
2020
- 2020-04-20 CN CN202010311985.5A patent/CN111506602B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110022583A1 (en) * | 2009-07-23 | 2011-01-27 | International Business Machines Corporation | SQL Queries For Simple Network Management Protocol Management Information Base Tables |
CN109241100A (zh) * | 2018-08-23 | 2019-01-18 | 上海达梦数据库有限公司 | 一种查询方法、装置、设备及存储介质 |
CN110471935A (zh) * | 2019-08-15 | 2019-11-19 | 上海达梦数据库有限公司 | 一种数据操作的执行方法、装置、设备和存储介质 |
CN110515973A (zh) * | 2019-08-30 | 2019-11-29 | 上海达梦数据库有限公司 | 一种数据查询的优化方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
李瑞;: "数据库查询优化技术的研究与实现" * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112035523A (zh) * | 2020-08-25 | 2020-12-04 | 上海达梦数据库有限公司 | 一种并行度的确定方法、装置、设备及存储介质 |
CN112100199A (zh) * | 2020-09-21 | 2020-12-18 | 上海达梦数据库有限公司 | 一种基于数据集分组的分析方法、装置、设备及介质 |
CN112100199B (zh) * | 2020-09-21 | 2024-03-26 | 上海达梦数据库有限公司 | 一种基于数据集分组的分析方法、装置、设备及介质 |
CN112202859A (zh) * | 2020-09-22 | 2021-01-08 | 北京人大金仓信息技术股份有限公司 | 数据传输方法和数据库系统 |
CN112202859B (zh) * | 2020-09-22 | 2024-02-23 | 北京人大金仓信息技术股份有限公司 | 数据传输方法和数据库系统 |
CN113420033A (zh) * | 2021-08-17 | 2021-09-21 | 蚂蚁金服(杭州)网络技术有限公司 | 分布式数据库的表数据查询方法、表数据查询装置及系统 |
WO2023020236A1 (zh) * | 2021-08-17 | 2023-02-23 | 北京奥星贝斯科技有限公司 | 分布式数据库的表数据查询 |
CN113704329A (zh) * | 2021-09-03 | 2021-11-26 | 上海达梦数据库有限公司 | 一种改变数据分布的方法、装置、设备及存储介质 |
CN113704329B (zh) * | 2021-09-03 | 2023-06-20 | 上海达梦数据库有限公司 | 一种改变数据分布的方法、装置、设备及存储介质 |
CN113934763A (zh) * | 2021-12-17 | 2022-01-14 | 北京奥星贝斯科技有限公司 | 分布式数据库的sql查询方法及装置 |
CN113934763B (zh) * | 2021-12-17 | 2022-04-12 | 北京奥星贝斯科技有限公司 | 分布式数据库的sql查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111506602B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111506602A (zh) | 数据查询方法、装置、设备和存储介质 | |
US11487772B2 (en) | Multi-party data joint query method, device, server and storage medium | |
CN110908997B (zh) | 数据血缘构建方法、装置、服务器及可读存储介质 | |
US8751216B2 (en) | Table merging with row data reduction | |
US8612422B2 (en) | Method, system and program product for rewriting structured query language (SQL) statements | |
CN111008521B (zh) | 生成宽表的方法、装置及计算机存储介质 | |
WO2021259217A1 (zh) | 数据的关联查询方法、装置、设备及存储介质 | |
CN111104450B (zh) | 目标数据导入方法、介质、装置和计算设备 | |
CN109241100B (zh) | 一种查询方法、装置、设备及存储介质 | |
US11698911B2 (en) | System and methods for performing updated query requests in a system of multiple database engine | |
CN112860730A (zh) | Sql语句的处理方法、装置、电子设备及可读存储介质 | |
US20200311151A1 (en) | Document structures for searching within and across messages | |
CN109299101A (zh) | 数据检索方法、装置、服务器和存储介质 | |
CN104050297B (zh) | 一种查询事务分配方法及装置 | |
CN111177244A (zh) | 面向多个异构数据库的数据关联分析方法 | |
CN116795859A (zh) | 数据分析方法、装置、计算机设备和存储介质 | |
US10243798B2 (en) | Variable SNMP data collection with embedded queries | |
CN111221888A (zh) | 大数据分析系统及方法 | |
US6988094B2 (en) | Multi-part looked-up table field and its use to in data processing operations involving multiple tables of a relational database | |
CN112632082B (zh) | 一种创建Flink作业的方法及装置 | |
CN112463814A (zh) | 一种数据查询方法及装置 | |
CN108780452A (zh) | 一种存储过程处理方法及装置 | |
Namdeo et al. | A Middleware Model for SQL to NoSQL Query Translation | |
CN113515285B (zh) | 生成实时计算逻辑数据的方法和装置 | |
CN114443699A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |