CN111913986A - 一种查询优化方法及装置 - Google Patents
一种查询优化方法及装置 Download PDFInfo
- Publication number
- CN111913986A CN111913986A CN202010766906.XA CN202010766906A CN111913986A CN 111913986 A CN111913986 A CN 111913986A CN 202010766906 A CN202010766906 A CN 202010766906A CN 111913986 A CN111913986 A CN 111913986A
- Authority
- CN
- China
- Prior art keywords
- query
- task
- subtasks
- subtask
- same
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000005457 optimization Methods 0.000 title claims abstract description 54
- 238000004590 computer program Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 101100328884 Caenorhabditis elegans sqt-3 gene Proteins 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101100328886 Caenorhabditis elegans col-2 gene Proteins 0.000 description 1
- 101100237842 Xenopus laevis mmp18 gene Proteins 0.000 description 1
- 125000002015 acyclic group Chemical group 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
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
-
- 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/24535—Query rewriting; Transformation of sub-queries or views
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- 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
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Operations Research (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书提供一种查询优化方法及装置,其中方法包括:获取待优化的多个查询任务;其中,每个所述查询任务中包括至少一个子任务,并且当同一查询任务中包括至少两个子任务时,所述至少两个子任务之间存在查询依赖关系;根据所述查询依赖关系,将所述多个查询任务组合得到一个组合任务;基于所述组合任务,对不同查询任务中的至少两个子任务进行合并,得到第一合并子任务;其中,执行所述第一合并子任务可得到所述不同查询任务中的至少两个子任务的查询结果。
Description
技术领域
本说明书涉及互联网技术领域,尤其涉及一种查询优化方法及装置。
背景技术
在线查询场景中,经常会遇到高并发、高吞吐、低延迟的查询需求。例如,在线OLTP(On-Line Transaction Processing,联机事务处理过程)查询场景中,每秒钟可能有几万次的批量查询请求,其中每次批量查询请求中可能包含几十甚至几百个查询任务,且要求查询耗时响应在10ms之内。在这种大量查询任务的场景中,需要对查询任务进行优化以提高查询效率。
相关查询优化的技术中,只能在单个查询任务范围内对该查询任务的查询逻辑进行优化。但是,不同的查询任务中仍然存在大量重复的查询逻辑。所以,单个查询任务范围内的查询优化,查询效率仍然较低。
发明内容
本说明书至少一个实施例提供了一种查询优化方法,以提升对查询任务的查询效率。
第一方面,提供了一种查询优化方法,所述方法包括:
获取待优化的多个查询任务;其中,每个所述查询任务中包括至少一个子任务,并且当同一查询任务中包括至少两个子任务时,所述至少两个子任务之间存在查询依赖关系;
根据所述查询依赖关系,将所述多个查询任务组合得到一个组合任务;
基于所述组合任务,对不同查询任务中的至少两个子任务进行合并,得到第一合并子任务;其中,执行所述第一合并子任务可得到所述不同查询任务中的至少两个子任务的查询结果。
第二方面,提供了一种查询优化装置,所述装置包括:
获取模块,用于获取待优化的多个查询任务;其中,每个所述查询任务中包括至少一个子任务,并且当同一查询任务中包括至少两个子任务时,所述至少两个子任务之间存在查询依赖关系;
组合模块,用于根据所述查询依赖关系,将所述多个查询任务组合得到一个组合任务;
合并模块,用于基于所述组合任务,对不同查询任务中的至少两个子任务进行合并,得到第一合并子任务;其中,执行所述第一合并子任务可得到所述不同查询任务中的至少两个子任务的查询结果。
第三方面,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本说明书任一实施例所述的查询优化方法。
第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本说明书任一实施例所述查询优化方法的步骤。
由以上技术方案可以看出,本说明书至少一个实施例中,通过将多个查询任务组合得到一个组合任务,基于完整的组合任务,对不同查询任务中的子任务合并为一个任务。由于基于组合任务进行优化的子任务是属于不同查询任务的,所以该方案实现了在多个不同查询任务范围内的查询优化。相比于对单个查询任务的优化方式,可以对不同查询任务中重复的查询逻辑进行合并优化,从而提升查询效率。进一步的,正是基于能够在多个不同查询任务范围内进行任务合并,使得每秒几万次甚至几十万次批量查询的高吞吐成为可能。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
图1是根据一示例性实施例示出的一种查询优化方法流程图;
图2是根据一示例性实施例示出的一种组合任务示意图;
图3是根据一示例性实施例示出的一种查询优化装置示意图;
图4是根据一示例性实施例示出的又一种查询优化装置示意图;
图5是根据一示例性实施例示出的又一种查询优化装置示意图;
图6是根据一示例性实施例示出的又一种查询优化装置示意图;
图7是根据一示例性实施例示出的又一种查询优化装置示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的具体方式并不代表与本说明书相一致的所有方案。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在线查询场景中,经常会遇到高并发、高吞吐、低延迟的查询需求。例如,在电商大促时的在线OLTP查询场景中,每秒钟可能有几万次的批量查询请求,其中每次批量查询请求中可能包含几十甚至几百个查询任务,且要求查询耗时响应在10ms之内。在这种大量查询任务的场景中,需要对查询任务进行优化以提高查询效率。
相关查询优化的技术中,只能在单个查询任务范围内对该查询任务的查询逻辑进行优化。比如,将同一个查询任务中相同的两个查询逻辑合并为一个查询逻辑,从而避免重复执行相同的查询逻辑。但是,不同的查询任务中仍然存在大量重复的查询逻辑。在执行不同查询任务的过程中,会大量重复执行相同的查询逻辑。可见,针对单个查询任务的优化方式,查询效率仍然较低,甚至浪费查询资源。
为此,本说明书公开了一种查询优化方法,将多个查询任务合并为一个组合任务,在组合任务包含的不同查询任务范围内,使得属于不同查询任务的查询逻辑之间也可以进行优化。
需要说明的是,本说明书提供的查询优化方法,可以应用到各种在线查询中,可以包括但不限制于OLTP在线查询或OLAP(On-Line Analytical Processing,联机分析处理)在线查询。
为了使本说明书提供的优化查询方法更加清楚,下面结合附图和具体实施例对本说明书提供的方案执行过程进行详细描述。
参见图1,图1是本说明书提供的实施例示出的一种查询优化方法流程图。如图1所示,该流程包括:
步骤101,获取待优化的多个查询任务;其中,每个所述查询任务中包括至少一个子任务,并且当同一查询任务中包括至少两个子任务时,所述至少两个子任务之间存在查询依赖关系。
本实施例中,查询任务是:根据查询条件,从数据源中获取最终查询结果的过程。比如,在查询条件是“男性的姓名”的情况下,可以依据该查询条件从对应的数据源中,查找到符合条件的“姓名”作为查询结果。这就是一个完整的查询任务。
其中,每个查询任务由不同的查询逻辑组成,并且可以通过执行查询任务中的查询逻辑最终得到该查询任务的查询结果。本实施例中,以查询任务中的子任务表示不同的查询逻辑,而每个查询任务可以包括一个或者多个子任务。
比如,在查询条件是“男性的姓名”的情况下,该查询任务中可以只包括一个子任务:根据“男性”这一查询条件,从数据源中查询符合条件的姓名。即,根据这一个子任务的查询,就可以得到该查询任务的查询结果。
比如,在查询条件是“身高大于175cm的男性的姓名”的情况下,该查询任务中可以包括两个子任务:
子任务1,需要根据“身高大于175cm”这一查询条件,从数据源中查询符合身高条件的姓名信息,作为子任务1的查询结果;
子任务2,需要根据“男性”这一查询条件,从子任务1的查询结果中,查询符合性别条件的姓名。
即,该查询任务的查询结果,需要两个子任务均查询完成才能得到。基于相同的原理,可以理解的是,在查询条件更加复杂的情况下,查询任务中可能包括三个甚至更多的子任务。
当同一查询任务中包括两个或两个以上的子任务时,多个子任务之间存在查询依赖关系。比如,查询任务中的某一个子任务的执行,需要依赖该查询任务中的另一个子任务的执行结果,则这两个子任务之间存在查询依赖关系。
参照图2,图2中利用DAG(Directed Acyclic Graph,有向无环图)的形式示意了多个查询任务:查询任务1、查询任务2和查询任务3。以查询任务1为例进行说明:节点“Input1”表示查询入口,可以输入所在查询任务的查询条件;节点“A”表示所在查询任务对应的查询数据源,比如HBASE数据库或MySQL数据库;节点“Join1”表示根据“Input1”中的查询条件和“A”中的查询数据源查询后得到的查询结果。
参照图2中的查询任务1,其只包括一个子任务a,该子任务a由“Input1”、“A”和“Join1”共三个节点连接组成。执行子任务a时,可以根据Input1的查询条件和A中的查询数据源进行查询,得到子任务a的查询结果。由于查询任务1只包括一个子任务a,所以子任务a的查询结果即查询任务1的查询结果。
参照图2中查询任务2,包括两个子任务:子任务b和子任务c。
子任务b由“Input2”、“B”和“Join2”三个节点连接组成。执行子任务b可得到子任务b的查询结果。其中,得到子任务b的过程与得到子任务a的查询结果相同,不再赘述。
子任务c由“Join2”、“C”和“Join3”三个节点连接组成。其中,“Join2”表示子任务b的查询结果的同时,还作为子任务c的查询条件存在。在执行子任务c时,可以根据子任务b的查询结果“Join2”和C中的查询数据源进行查询,得到子任务c的查询结果。由于子任务c之后没有其他子任务需要执行,所以得到的子任务c的查询结果,即为查询任务2的查询结果。基于与查询任务2相同的原理,查询任务3中包括子任务d和子任务e,且子任务e依赖子任务d。
如图2中的查询任务2,子任务c的执行依赖子任务b的查询结果作为查询条件,所以子任务b和子任务c之间存在查询依赖关系。并且,具体查询依赖关系是:子任务c依赖子任务b。
步骤102,根据所述查询依赖关系,将所述多个查询任务组合得到一个组合任务。
本步骤可以基于各个查询任务中子任务之间的查询依赖关系,将多个不同的查询任务进行组合,得到一个完整的组合任务。
基于每个查询任务中子任务之间的查询依赖关系,可以确定待连接的子任务。以图2为例。由于查询任务1中只包括一个子任务a,所以可以将子任务a作为待连接的子任务。基于查询任务2中子任务b和子任务c之间的查询依赖关系,由于子任务c是执行查询任务2时的最后一个子任务,所以可以将子任务c作为待连接的子任务。基于查询任务3中子任务d和子任务e之间的查询依赖关系,可以将子任务e作为待连接的子任务。
通过将各个待连接的子任务进行连接,将各个查询任务连接起来,组合得到一个完整的组合任务。比如,可以将查询任务1、查询任务2和查询任务3,通过“JOIN1”和“JOIN2”两个节点连接,组合得到一个完整的组合任务1。其中,“JOIN1”和“JOIN2”节点并不会对所连接的不同查询任务最终的查询结果产生影响,即:基于组合任务1得到的各个查询任务的查询结果,与单独执行各个查询任务得到的查询结果相同。
在一个例子中,每个子任务包括查询数据源,并且查询数据源可以是不同物理架构的数据源。以图2为例,子任务a的查询数据源“A”可以是HBASE数据库;而子任务b的查询数据源“B”可以是MySQL数据库,子任务c的查询数据源“C”可以是HBASE数据库。同一个查询任务中的不同子任务之间,查询数据源可以是异构数据源;或者,不同查询任务中的子任务之间的查询数据源可以是异构数据源。本实施例中,对子任务中的数据源物理结构不进行限制,任一子任务中的查询数据源均可以是异构数据源。
在一个例子中,在所述将所述多个查询任务组合得到一个组合任务之前,还包括:根据预设的判定条件,从所述查询任务中确定第一查询逻辑;所述第一查询逻辑包括:同一所述查询任务中的至少一个子任务;存储所述第一查询逻辑的查询结果;在所述将所述多个查询任务组合得到一个组合任务之后,还包括:判断所述组合任务中存在与所述第一查询逻辑相同的查询逻辑,则将所述第一查询逻辑的查询结果作为所述与所述第一查询逻辑相同的查询逻辑的查询结果。
上述例子中,在对组合任务中查询任务的子任务优化前,可以根据预设的判定条件,在同一个查询任务中确定常用的查询逻辑作为第一查询逻辑。其中,预设的判定条件可以是:执行次数、执行频率等。比如,某一查询逻辑执行次数大于预设次数,则可以确定该查询逻辑是常用的查询逻辑,作为第一查询逻辑。上述查询逻辑可以是同一查询任务中的一个子任务或多个存在查询依赖关系的子任务。
在执行组合任务中的子任务时,可以判断存在与第一查询逻辑相同的查询逻辑时,直接获取第一查询逻辑的查询结果,而不必重复执行相同的查询逻辑。
以图2所示的组合任务1为例,在执行组合任务1中的子任务之前,可以先确定第一查询逻辑。比如,可以将子任务b作为第一查询逻辑,或者可以将子任务b和子任务c组成的查询任务2作为第一查询逻辑。如果判定条件是执行次数大于预设次数,则在执行子任务b的执行次数大于预设次数的情况下,将子任务b作为第一查询逻辑,执行该子任务b并存储查询结果。
在执行组合任务1中的子任务时,若判断其中存在与第一查询逻辑相同的查询逻辑“子任务b”,则可以将存储的第一查询逻辑的查询结果作为该子任务b的查询结果,而不必重复执行子任务b的查询过程。
步骤103,基于所述组合任务,对不同查询任务中的至少两个子任务进行合并,得到第一合并子任务;其中,执行所述第一合并子任务可得到所述不同查询任务中的至少两个子任务的查询结果。
在相关查询优化的技术中,只能对单个的查询任务进行优化。以图2为例,相关技术中,或者只能对查询任务1进行查询优化,或者只能对查询任务2进行查询优化,或者只能对查询任务3进行查询优化。
本步骤中,可以在不同查询任务组合得到的一个组合任务的基础上,将隶属于不同查询任务的至少两个子任务进行合并,得到第一合并子任务。这样通过执行一次合并后的第一合并子任务,就可以得到多个子任务的查询结果。其中,合并子任务的方式可以是将相同的多个子任务合并为一个任务,以去掉重复的子任务。或者,可以根据多个子任务中相同的部分,将多个子任务合并到一个任务中。比如,可以将存储路径存在相同部分的子任务,合并为一个可执行的人物。
以图2示例的组合任务1为例。本步骤可以基于组合任务1,对其中属于不同查询任务的子任务进行合并。比如,若查询任务1中的子任务a与查询任务2中的子任务b相同,则可以将子任务a和子任务b合并为一个第一合并子任务。这样,只执行一次第一合并子任务,就可以同时得到子任务a和子任务b的查询结果。具体的,比如可以只执行一次子任务a,或者只执行一次子任务b。其中,两个子任务相同的判断条件可以是:两个子任务中包括的查询条件和查询数据源均相同。这种方式去掉了重复执行子任务的查询过程,实现了查询优化的效果。并且,这种“去重优化”的过程中,由于子任务a和子任务b是属于不同查询任务,所以这种优化方式做到了跨查询任务的优化。
需要说明的是,在组合任务中,除上述“去重优化”的方式外,对不同查询任务中的子任务进行合并的具体方式还有很多,本实施例不进行限制。比如,若子任务a与子任务c相同,则可以将子任务a与子任务c进行合并,得到第一合并任务;通过执行该第一合并任务同时得到子任务a与子任务c的查询结果。
本实施例的查询优化方法,由于进行优化的组合任务中的子任务是隶属于不同查询任务的,该方法在组合任务的基础上实现了跨查询任务的优化,相比于对单个查询任务的优化,提升了查询效率。进一步的,由于该方法实现了跨查询任务的优化,所以能够大量减少不同查询任务中存在的重复查询,节省查询资源。
在一个例子中,所述对不同查询任务中的至少两个子任务进行合并,得到第一合并子任务,包括:基于所述查询依赖关系,确定每个所述查询任务中无依赖的子任务,组成所述组合任务的第一任务集合;将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务。
上述实施例中,需要基于查询任务中子任务之间的查询依赖关系,从每个查询任务中确定出不依赖其他子任务即可执行的子任务,将各个查询任务中确定出来的子任务,组成第一任务集合。如图2所示的组合任务1。其中,查询任务1中的子任务a不依赖其他子任务可执行;查询任务2中子任务b不依赖其他子任务;查询任务3中子任务d不依赖其他子任务。所以,可以将子任务a、子任务b和子任务d组成一个集合,得到组合任务1的第一任务集合。
在确定组合任务的第一任务集合后,由于第一任务集合中的子任务均是无依赖的子任务,则可以基于第一任务集合中子任务的特点进行优化。本实施例中,可以将第一任务集合中的至少两个子任务进行合并,得到第一合并子任务。这样通过执行一次第一合并子任务,即可得到多个用来组合的子任务的查询结果。
本实施例中,由于第一任务集合中的子任务属于不同的查询任务,所以对第一组合任务中子任务的优化,实现了跨查询任务的优化效果。从而,提升了优化效果和查询效率。同时,跨查询任务的优化,可以减少不同查询任务中重复的查询逻辑,节省查询资源。
在一个例子中,在所述组成所述组合任务的第一任务集合之后,还包括:并发执行所述第一任务集合中的子任务;将查询时长满足预设条件的子任务的查询结果放置在缓存中。
上述实施例中,可以将第一任务集合中的多个子任务并发执行。所以,在并发执行多个子任务的过程中,由于子任务具体查询过程不同,各个子任务所用的查询时长也不相同。可能其中某一个或几个子任务的查询时长过于长(相比于其他子任务查询时长而言过于长),会因为这一个或几个查询任务影响并发执行的查询时长。上述实施例中,可以将查询时长满足预设条件的子任务的查询结果放置在缓存中,以加快查询。其中,预设条件可以包括但不限制于查询时长阈值。比如,预设条件可以是“查询时长大于10ms”。
在一个例子中,每个所述子任务包括:查询条件和查询数据源;所述将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务,包括:在所述第一任务集合中,将查询条件和查询数据源相同的至少两个子任务进行合并,得到所述第一合并子任务。
上述实施例中,每个子任务包括查询条件和查询数据源。
如图2所示,组合任务1中子任务a包括节点“Input1”输入的查询条件和节点“A”中的查询数据源。子任务b包括节点“Input2”输入的查询条件和节点“B”中的查询数据源;子任务c可以将子任务b的查询结果“Join2”作为查询条件,还包括节点“C”中的查询数据源。
本实施例可以从第一任务集合的子任务中,确定查询条件和查询数据源均相同的子任务,进行去重。
若两个子任务的查询条件和查询数据源均相同,则可认为这两个子任务相同,执行这两个子任务会得到相同的查询结果。所以,在第一任务集合中,对于查询条件和查询数据源均相同的多个子任务,可以进行合并得到第一合并子任务。执行一次第一合并任务,即可得到多个子任务的查询结果。其中,第一合并子任务可以是用来合并的多个子任务其中的一个子任务。所以,合并后可以只执行其中一个子任务,避免重复执行相同的查询逻辑。
以图2为例,在第一任务集合中,若子任务a中“Input1”输入的查询条件与子任务b中“Input2”输入的查询条件相同,且子任务a中的查询数据源“A”与子任务b中的查询数据源“B”相同,则可以进行去重。即,可以将子任务a和子任务b合并得到第一合并任务,比如将子任务a作为第一合并任务。这样通过执行一次子任务a,同时得到了子任务a和子任务b的查询结果。
本实施例中,在组合任务中确定第一任务集合的基础上,可以对第一任务集合中的子任务进行去重优化。由于第一任务集合中的子任务属于不同的查询任务,所以这种去重优化的方式实现了跨查询任务的优化,减少了不同查询任务中存在的重复查询逻辑,提升了查询效率,节省查询资源。
在一个例子中,每个所述子任务包括查询数据源;所述将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务,包括:从所述第一任务集合中,确定所述查询数据源相同的多个子任务;在所述查询数据源相同的多个子任务中,将查询路径存在相同部分的至少两个子任务进行合并,得到所述第一合并子任务。
上述实施例中,在组合任务中确定第一任务集合的基础上,可以实现存储路径存在相同部分的子任务的合并。
以图2为例,在第一任务集合中,假设子任务a的查询数据源是HBASE数据库、子任务b的查询数据源也是HBASE数据库。本实施例可以从第一任务集合中,确定子任务a和子任务b是查询数据源相同的子任务。
以HBASE数据库作为查询数据源为例,以下示例了五个查询任务:
Query1:T1,KEY1,f,col1;
Query2:T1,KEY1,f,col1;
Query3:T1,KEY1,f,col2;
Query4:T1,KEY2,f,col3;
Query5:T2,KEY3,f,col4;
其中,每个查询任务包括:表,行,列簇,列。如查询任务Query1在执行查询过程中,查询路径依次是:表-T1,行-KEY1,列簇-f,列-col1,最终得到查询任务Query1的查询结果。
本实施例可以在查询数据源相同的子任务中,将查询路径存在相同部分的子任务,合并为第一合并子任务。
继续以HBASE数据库为例,假设第一任务集合中包括查询任务Query1-5共5个子任务。由于Query1与Query2这两个子任务的查询路径完全相同,所以可以只执行其中的子任务Query1,同时也可以得到Query2的查询结果。该Query1即可以称为由Query1和Query2进行合并,得到的第一合并子任务。
由于Query1与Query3这两个子任务的查询路径中只有“列”不同,所以可以将两个查询任务合并为一个“Get任务”。该“Get任务”即可以称为由Query1和Query3进行合并,得到的第一合并子任务。
由于Query1与Query4的查询路径中“行”不同,所以可将Query4与“Get任务”进一步合并为一个“MultiGet任务”。该“MultiGet任务”即可以称为由Query1、Query3和Query4进行合并,得到的第一合并子任务。
由于Query5与其他子任务的查询路径“表”不同,所以Query5只能作为一个“新Get任务”。基于以上的合并过程,可以将Query1-5共5个子任务,合并为两个第一合并子任务:一个“MultiGet任务”和一个“新Get任务”。
需要说明的是,以上是基于HBASE数据库作为查询数据源,对第一任务集合中的子任务进行合并的具体实现过程。对于不同的查询数据源,比如MySQL数据库,可以根据该数据库的查询特性,对第一任务集合中的子任务进行合并。可以理解的是,上述合并过程中是根据查询路径相同进行的合并,在其他可行的实施例中还可以基于查询数据源的查询特性进行其他形式的任务合并。
执行第一合并子任务后,可以得到用于合并的多个子任务的查询结果。结合上述HBASE数据库的例子,执行“MultiGet任务”后可以得到Query1-4共4个子任务的查询结果。
本实施例中,在第一任务集合中确定数据源相同的多个子任务后,可以根据查询路径将子任务进行合并。该方式减少了查询次数,减少了访问查询数据源的次数,减少查询耗时。并且,这种合并方式也实现了跨查询任务的优化,提升了查询效率,节省查询资源。
在一个例子中,在所述组成所述组合任务的第一任务集合之后,还包括:基于所述查询依赖关系,在所述组合任务中,确定依赖所述第一任务集合中每个子任务的子任务,组成所述组合任务的第二任务集合;执行所述第一任务集合中的子任务,并存储查询结果;若所述第二任务集合和第一任务集合中,存在查询条件和查询数据源相同的相同子任务,则将所述第一任务集合中的相同子任务的查询结果作为所述第二任务集合中的相同子任务的查询结果。
上述实施例中,可以基于每个查询任务中子任务之间的查询依赖关系,根据第一任务集合中的子任务,确定第二任务集合中的子任务。其中,第二任务集合中的子任务依赖第一任务集合中的子任务。
以图2为例,子任务c依赖第一任务集合中的子任务b,所以子任务c可以作为第二任务集合中的子任务;子任务e依赖第一任务集合中的子任务d,所以子任务e可以作为第二任务集合中的子任务。
执行第一任务集合中的子任务,得到查询结果并存储。比如,并发执行第一任务集合中的多个子任务,得到多个子任务的查询结果后进行对应存储。比如,图2中,可以并发执行第一任务集合中的各个子任务,并将查询结果进行对应存储。
由于第二任务集合中的子任务依赖第一任务集合中的子任务,所以第一任务集合中的子任务执行后的查询结果,可以作为第二任务集合中子任务的查询条件。此时,可以将第二任务集合中的子任务与已经执行过的第一任务集合中的子任务进行对比判断。若第二任务集合中存在与第一任务集合中查询条件和查询数据源均相同的相同子任务,则可以从存储的查询结果中直接获取对应的相同子任务的查询结果,而不必重新执行第二任务集合中的相同子任务的查询逻辑。
以图2示例的组合任务1为例,其中包括第一任务集合和第二任务集合,并且预先执行了第一任务集合中的多个子任务,存储对应的查询结果。假设在第二任务集合中的子任务e的查询数据源“E”,与第一任务集合中子任务b的查询数据源“B”相同且均是HBASE数据库;并且,第一任务集合中子任务d的查询结果与子任务b“Input”输入的查询条件相同,则可以确定第二任务集合中的子任务e与第一任务集合中的子任务b是查询条件和查询数据源均相同的相同子任务。由于子任务b已经执行且存储了查询结果,所以可以直接获取子任务b的查询结果作为子任务e的查询结果,而不必执行子任务e。
本实施例中,可以将已执行子任务的查询结果进行存储,在后续执行子任务时,若存在相同的子任务则直接获取对应的查询结果。在利用第一任务集合中子任务对第二任务集合中的子任务进行优化的过程中,依然实现了跨查询任务的优化,减少了不同查询查询任务中存在的重复查询,提升了查询效率,节省查询资源。
图3所示,本说明书提供了一种查询优化装置,该装置可以执行本说明书任一实施例的查询优化方法。该装置可以包括获取模块201、组合模块202和合并模块203。其中:
获取模块201,用于获取待优化的多个查询任务;其中,每个所述查询任务中包括至少一个子任务,并且当同一查询任务中包括至少两个子任务时,所述至少两个子任务之间存在查询依赖关系;
组合模块202,用于根据所述查询依赖关系,将所述多个查询任务组合得到一个组合任务;
合并模块203,用于基于所述组合任务,对不同查询任务中的至少两个子任务进行合并,得到第一合并子任务;其中,执行所述第一合并子任务可得到所述不同查询任务中的至少两个子任务的查询结果。
可选地,如图4所示,所述合并模块203,包括:
第一集合子模块301,用于基于所述查询依赖关系,确定每个所述查询任务中无依赖的子任务,组成所述组合任务的第一任务集合;
合并子模块302,用于将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务。
可选地,每个所述子任务包括:查询条件和查询数据源;所述合并子模块302,在用于将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务时,包括:在所述第一任务集合中,将查询条件和查询数据源相同的至少两个子任务进行合并,得到所述第一合并子任务。
可选地,每个所述子任务包括查询数据源;所述合并子模块302,在用于将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务时,包括:从所述第一任务集合中,确定所述查询数据源相同的多个子任务;在所述查询数据源相同的多个子任务中,将查询路径存在相同部分的至少两个子任务进行合并,得到所述第一合并子任务。
可选地,如图5所示,所述合并模块203,还包括
第二集合子模块401,用于基于所述查询依赖关系,在所述组合任务中,确定依赖所述第一任务集合中每个子任务的子任务,组成所述组合任务的第二任务集合;
第一执行子模块402,用于执行所述第一任务集合中的子任务,并存储查询结果;
结果获取子模块403,用于若所述第二任务集合和第一任务集合中,存在查询条件和查询数据源相同的相同子任务,则获取所述第一任务集合中的相同子任务的查询结果作为所述第二任务集合中的相同子任务的查询结果。
可选地,每个所述子任务包括查询数据源,且所述查询数据源包括至少两种不同物理架构的数据源。
可选地,如图6所示,所述合并模块203,还包括:
并发执行子模块501,用于并发执行所述第一任务集合中的子任务;
缓存子模块502,用于将查询时长满足预设条件的子任务的查询结果放置在缓存中。
可选地,如图7所示,所述装置还包括:
查询逻辑确定模块601,用于根据预设的判定条件,从所述查询任务中确定第一查询逻辑;所述第一查询逻辑包括:同一所述查询任务中的至少一个子任务;
结果存储模块602,用于存储所述第一查询逻辑的查询结果;
结果获取模块603,用于判断所述组合任务中存在与所述第一查询逻辑相同的查询逻辑,则获取所述第一查询逻辑的查询结果作为所述与所述第一查询逻辑相同的查询逻辑的查询结果。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书至少一个实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本说明书还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时能够实现本说明书任一实施例的查询优化方法。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时能够实现本说明书任一实施例的查询优化方法。
其中,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等,本说明书并不对此进行限制。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用于限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (18)
1.一种查询优化方法,所述方法包括:
获取待优化的多个查询任务;其中,每个所述查询任务中包括至少一个子任务,并且当同一查询任务中包括至少两个子任务时,所述至少两个子任务之间存在查询依赖关系;
根据所述查询依赖关系,将所述多个查询任务组合得到一个组合任务;
基于所述组合任务,对不同查询任务中的至少两个子任务进行合并,得到第一合并子任务;其中,执行所述第一合并子任务可得到所述不同查询任务中的至少两个子任务的查询结果。
2.根据权利要求1所述的方法,所述对不同查询任务中的至少两个子任务进行合并,得到第一合并子任务,包括:
基于所述查询依赖关系,确定每个所述查询任务中无依赖的子任务,组成所述组合任务的第一任务集合;
将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务。
3.根据权利要求2所述的方法,每个所述子任务包括:查询条件和查询数据源;
所述将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务,包括:
在所述第一任务集合中,将查询条件和查询数据源相同的至少两个子任务进行合并,得到所述第一合并子任务。
4.根据权利要求2所述的方法,每个所述子任务包括查询数据源;
所述将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务,包括:
从所述第一任务集合中,确定所述查询数据源相同的多个子任务;
在所述查询数据源相同的多个子任务中,将查询路径存在相同部分的至少两个子任务进行合并,得到所述第一合并子任务。
5.根据权利要求2所述的方法,在所述组成所述组合任务的第一任务集合之后,还包括:
基于所述查询依赖关系,在所述组合任务中,确定依赖所述第一任务集合中每个子任务的子任务,组成所述组合任务的第二任务集合;
执行所述第一任务集合中的子任务,并存储查询结果;
若所述第二任务集合和第一任务集合中,存在查询条件和查询数据源相同的相同子任务,则将所述第一任务集合中的相同子任务的查询结果作为所述第二任务集合中的相同子任务的查询结果。
6.根据权利要求1或2所述的方法,每个所述子任务包括查询数据源,且所述查询数据源包括至少两种不同物理架构的数据源。
7.根据权利要求2所述的方法,在所述组成所述组合任务的第一任务集合之后,还包括:
并发执行所述第一任务集合中的子任务;
将查询时长满足预设条件的子任务的查询结果放置在缓存中。
8.根据权利要求1所述的方法,在所述将所述多个查询任务组合得到一个组合任务之前,还包括:
根据预设的判定条件,从所述查询任务中确定第一查询逻辑;所述第一查询逻辑包括:同一所述查询任务中的至少一个子任务;
存储所述第一查询逻辑的查询结果;
在所述将所述多个查询任务组合得到一个组合任务之后,还包括:
判断所述组合任务中存在与所述第一查询逻辑相同的查询逻辑,则将所述第一查询逻辑的查询结果作为所述与所述第一查询逻辑相同的查询逻辑的查询结果。
9.一种查询优化装置,所述装置包括:
获取模块,用于获取待优化的多个查询任务;其中,每个所述查询任务中包括至少一个子任务,并且当同一查询任务中包括至少两个子任务时,所述至少两个子任务之间存在查询依赖关系;
组合模块,用于根据所述查询依赖关系,将所述多个查询任务组合得到一个组合任务;
合并模块,用于基于所述组合任务,对不同查询任务中的至少两个子任务进行合并,得到第一合并子任务;其中,执行所述第一合并子任务可得到所述不同查询任务中的至少两个子任务的查询结果。
10.根据权利要求9所述的装置,所述合并模块,包括:
第一集合子模块,用于基于所述查询依赖关系,确定每个所述查询任务中无依赖的子任务,组成所述组合任务的第一任务集合;
合并子模块,用于将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务。
11.根据权利要求10所述的装置,每个所述子任务包括:查询条件和查询数据源;
所述合并子模块,在用于将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务时,包括:
在所述第一任务集合中,将查询条件和查询数据源相同的至少两个子任务进行合并,得到所述第一合并子任务。
12.根据权利要求10所述的装置,每个所述子任务包括查询数据源;
所述合并子模块,在用于将所述第一任务集合中的至少两个子任务进行合并,得到所述第一合并子任务时,包括:
从所述第一任务集合中,确定所述查询数据源相同的多个子任务;
在所述查询数据源相同的多个子任务中,将查询路径存在相同部分的至少两个子任务进行合并,得到所述第一合并子任务。
13.根据权利要求10所述的装置,所述合并模块,还包括
第二集合子模块,用于基于所述查询依赖关系,在所述组合任务中,确定依赖所述第一任务集合中每个子任务的子任务,组成所述组合任务的第二任务集合;
第一执行子模块,用于执行所述第一任务集合中的子任务,并存储查询结果;
结果获取子模块,用于若所述第二任务集合和第一任务集合中,存在查询条件和查询数据源相同的相同子任务,则获取所述第一任务集合中的相同子任务的查询结果作为所述第二任务集合中的相同子任务的查询结果。
14.根据权利要求9或10所述的装置,每个所述子任务包括查询数据源,且所述查询数据源包括至少两种不同物理架构的数据源。
15.根据权利要求10所述的装置,所述合并模块,还包括:
并发执行子模块,用于并发执行所述第一任务集合中的子任务;
缓存子模块,用于将查询时长满足预设条件的子任务的查询结果放置在缓存中。
16.根据权利要求9所述的装置,所述装置还包括:
查询逻辑确定模块,用于根据预设的判定条件,从所述查询任务中确定第一查询逻辑;所述第一查询逻辑包括:同一所述查询任务中的至少一个子任务;
结果存储模块,用于存储所述第一查询逻辑的查询结果;
结果获取模块,用于判断所述组合任务中存在与所述第一查询逻辑相同的查询逻辑,则获取所述第一查询逻辑的查询结果作为所述与所述第一查询逻辑相同的查询逻辑的查询结果。
17.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1-8任一所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现权利要求1-8中任一项所述方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010766906.XA CN111913986B (zh) | 2020-08-03 | 2020-08-03 | 一种查询优化方法及装置 |
US17/354,465 US20220035813A1 (en) | 2020-08-03 | 2021-06-22 | Query optimization method and apparatus |
EP21182225.9A EP3951609A1 (en) | 2020-08-03 | 2021-06-29 | Query optimization method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010766906.XA CN111913986B (zh) | 2020-08-03 | 2020-08-03 | 一种查询优化方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913986A true CN111913986A (zh) | 2020-11-10 |
CN111913986B CN111913986B (zh) | 2024-04-16 |
Family
ID=73288035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010766906.XA Active CN111913986B (zh) | 2020-08-03 | 2020-08-03 | 一种查询优化方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220035813A1 (zh) |
EP (1) | EP3951609A1 (zh) |
CN (1) | CN111913986B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112506953A (zh) * | 2020-12-11 | 2021-03-16 | 中国邮政储蓄银行股份有限公司 | 基于结构化查询语言sql的查询方法、装置及存储介质 |
CN113806049A (zh) * | 2021-09-17 | 2021-12-17 | 金蝶软件(中国)有限公司 | 任务排队方法、装置、计算机设备和存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115081235A (zh) * | 2022-06-30 | 2022-09-20 | 北京奇艺世纪科技有限公司 | 特征处理方法、装置、存储介质以及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060253422A1 (en) * | 2005-05-06 | 2006-11-09 | Microsoft Corporation | Efficient computation of multiple group by queries |
US20110082859A1 (en) * | 2009-10-07 | 2011-04-07 | International Business Machines Corporation | Information theory based result merging for searching hierarchical entities across heterogeneous data sources |
US20140067794A1 (en) * | 2012-08-31 | 2014-03-06 | International Business Machines Corporation | Database grouping set query |
CN110263105A (zh) * | 2019-05-21 | 2019-09-20 | 北京百度网讯科技有限公司 | 查询处理方法、查询处理系统、服务器和计算机可读介质 |
CN110532084A (zh) * | 2019-09-04 | 2019-12-03 | 深圳前海微众银行股份有限公司 | 平台任务的调度方法、装置、设备及存储介质 |
CN111190924A (zh) * | 2019-12-18 | 2020-05-22 | 中思博安科技(北京)有限公司 | 跨域的数据查询方法及装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8694524B1 (en) * | 2006-08-28 | 2014-04-08 | Teradata Us, Inc. | Parsing a query |
US10255583B2 (en) * | 2007-05-01 | 2019-04-09 | Oracle International Corporation | Nested hierarchical rollups by level using a normalized table |
US8352459B2 (en) * | 2009-07-23 | 2013-01-08 | International Business Machines Corporation | SQL queries for simple network management protocol management information base tables |
JP5443945B2 (ja) * | 2009-10-28 | 2014-03-19 | 株式会社ビーイング | プロジェクト計画装置およびプロジェクト計画プログラム |
US9183254B1 (en) * | 2012-05-04 | 2015-11-10 | Paraccel Llc | Optimizing database queries using subquery composition |
US9529848B2 (en) * | 2013-12-06 | 2016-12-27 | Vmware, Inc. | Predictive query result computation |
US20170083573A1 (en) * | 2015-07-29 | 2017-03-23 | Algebraix Data Corp. | Multi-query optimization |
CN107402926B (zh) * | 2016-05-18 | 2021-02-23 | 华为技术有限公司 | 一种查询方法以及查询设备 |
US11409744B2 (en) * | 2019-08-01 | 2022-08-09 | Thoughtspot, Inc. | Query generation based on merger of subqueries |
-
2020
- 2020-08-03 CN CN202010766906.XA patent/CN111913986B/zh active Active
-
2021
- 2021-06-22 US US17/354,465 patent/US20220035813A1/en active Pending
- 2021-06-29 EP EP21182225.9A patent/EP3951609A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060253422A1 (en) * | 2005-05-06 | 2006-11-09 | Microsoft Corporation | Efficient computation of multiple group by queries |
US20110082859A1 (en) * | 2009-10-07 | 2011-04-07 | International Business Machines Corporation | Information theory based result merging for searching hierarchical entities across heterogeneous data sources |
US20140067794A1 (en) * | 2012-08-31 | 2014-03-06 | International Business Machines Corporation | Database grouping set query |
CN110263105A (zh) * | 2019-05-21 | 2019-09-20 | 北京百度网讯科技有限公司 | 查询处理方法、查询处理系统、服务器和计算机可读介质 |
CN110532084A (zh) * | 2019-09-04 | 2019-12-03 | 深圳前海微众银行股份有限公司 | 平台任务的调度方法、装置、设备及存储介质 |
CN111190924A (zh) * | 2019-12-18 | 2020-05-22 | 中思博安科技(北京)有限公司 | 跨域的数据查询方法及装置 |
Non-Patent Citations (2)
Title |
---|
MINH-TRI NGUYEN: "Attention-Based Neural Network: A Novel Approach for Predicting the Popularity of Online Content", IEEE * |
张伟;马利民;智昊;: "面向商品筛选应用的大数据处理优化技术", 北京信息科技大学学报(自然科学版), no. 04 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112506953A (zh) * | 2020-12-11 | 2021-03-16 | 中国邮政储蓄银行股份有限公司 | 基于结构化查询语言sql的查询方法、装置及存储介质 |
CN113806049A (zh) * | 2021-09-17 | 2021-12-17 | 金蝶软件(中国)有限公司 | 任务排队方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
EP3951609A1 (en) | 2022-02-09 |
US20220035813A1 (en) | 2022-02-03 |
CN111913986B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111913986A (zh) | 一种查询优化方法及装置 | |
US9934276B2 (en) | Systems and methods for fault tolerant, adaptive execution of arbitrary queries at low latency | |
US10769147B2 (en) | Batch data query method and apparatus | |
US20080222634A1 (en) | Parallel processing for etl processes | |
CN110837585A (zh) | 多源异构的数据关联查询方法及系统 | |
JPH06214843A (ja) | データベース管理システムおよび問合せの処理方法 | |
US20080109813A1 (en) | Resource assignment method, resource assignment program and management computer | |
US20170270162A1 (en) | Query optimization method in distributed query engine and apparatus thereof | |
US10423644B1 (en) | Splitting transaction and analysis queries | |
US9305074B2 (en) | Skew-aware storage and query execution on distributed database systems | |
US20170109403A1 (en) | Pre-caching | |
US20210286817A1 (en) | System and method for disjunctive joins using a lookup table | |
US11615086B2 (en) | System and method for disjunctive joins | |
CN115422205A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US10678789B2 (en) | Batch data query method and apparatus | |
CN107798025B (zh) | 存储过程的运行、编译方法、装置和数据库系统 | |
US11544260B2 (en) | Transaction processing method and system, and server | |
CN107451142B (zh) | 在数据库中写入和查询数据的方法与装置及其管理系统和计算机可读存储介质 | |
US11625399B2 (en) | Methods and devices for dynamic filter pushdown for massive parallel processing databases on cloud | |
CN111831425B (zh) | 一种数据处理方法、装置及设备 | |
US11386155B2 (en) | Filter evaluation in a database system | |
US6421657B1 (en) | Method and system for determining the lowest cost permutation for joining relational database tables | |
CN117390040B (zh) | 基于实时宽表的业务请求处理方法、设备及存储介质 | |
JP4422697B2 (ja) | データベース管理システムおよび問合せの処理方法 | |
CN118035278A (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 |