WO2017091925A1 - 数据查询的方法、装置和数据库系统 - Google Patents

数据查询的方法、装置和数据库系统 Download PDF

Info

Publication number
WO2017091925A1
WO2017091925A1 PCT/CN2015/095909 CN2015095909W WO2017091925A1 WO 2017091925 A1 WO2017091925 A1 WO 2017091925A1 CN 2015095909 W CN2015095909 W CN 2015095909W WO 2017091925 A1 WO2017091925 A1 WO 2017091925A1
Authority
WO
WIPO (PCT)
Prior art keywords
connection
predicate
query plan
join
level
Prior art date
Application number
PCT/CN2015/095909
Other languages
English (en)
French (fr)
Inventor
王国平
朱俊华
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2015/095909 priority Critical patent/WO2017091925A1/zh
Priority to BR112018010857-0A priority patent/BR112018010857B1/pt
Priority to EP15909443.2A priority patent/EP3373154A4/en
Priority to JP2018527925A priority patent/JP6628455B2/ja
Priority to SG11201804544QA priority patent/SG11201804544QA/en
Priority to KR1020187017354A priority patent/KR102138627B1/ko
Priority to CN201580005935.1A priority patent/CN107251013B/zh
Publication of WO2017091925A1 publication Critical patent/WO2017091925A1/zh
Priority to US15/992,925 priority patent/US10885034B2/en

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
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24544Join order 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/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/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24545Selectivity estimation or determination

Definitions

  • the query plan enumeration algorithm to enumerate all candidate query plans for the original query plan, using typical enumeration algorithms such as those used in IBM System R. Dynamic programming algorithm.
  • recombining the join predicates in the original query plan includes:
  • the left outer join is an extension of the inner join. It differs from the inner join in that if the R and S tables are left outer joins, if the left table (ie, the table R) is in the right table S did not find a matching row that matches the join predicate. Unlike an inner join, the record is discarded directly.
  • the left outer join still returns a record that retains all the column values in the left table, but all columns from the right table. The values are all empty (NULL).
  • the right outer join is similar to the left outer join. The only difference is that if a row in the right table does not find a matching row in the left table, then all the columns from the left table in the record returned by the operation. The values are all empty.
  • a full outer join is similar to a left/right outer join. The only difference is that no match row is found for a row in the left or right table, the operation returns a record and the column of the matching table is missing from the record. The values are all empty.
  • the basic information of the predicate p includes:
  • S1160 Determine, according to a connection operation rule, a constraint condition of the recombined connection predicate of the original query plan.
  • o A is in the right subtree of the subtree with o B as the root node. If o A and o B do not satisfy the combination of the operation level and the predicate level, then each of the reorganized on o B The connection predicate adds a second constraint. If o A and o B do not satisfy the right permutation rule of the operation level and the right permutation rule of the predicate level, a first constraint condition is added for each recombination predicate on o B ;
  • the set of equivalent query plans may be determined in the candidate query plan set, that is, whether each candidate query plan is original Query the plan's equivalent query plan; if there is no candidate query plan set, you can get a candidate query plan from the original query plan each time, and determine whether the candidate query plan is the equivalent query plan of the original query plan.
  • the first candidate query plan P' herein may be any candidate query plan in the candidate query plan.
  • a query plan can be selected from the set of equivalent query plans for querying. That is, select the query plan to query in the previously obtained equivalent query plan set. Specifically, the query plan with the least cost can be selected from the set of equivalent query plans to perform the query, and the query result is returned.
  • the set of equivalent query plans includes all query plans that can be converted from the original query plan by at least one of the four operational level rules and the three predicate level rules.
  • the above steps S1140-S1170 give an equivalent query to determine the original query plan.
  • the method of drawing. The method of determining the equivalent query plan of the original query plan is described in detail below with reference to specific examples. It should be noted that this is only to assist those skilled in the art to better understand the embodiments of the present invention and not to limit the scope of the embodiments of the present invention.
  • connection predicate in the original query plan P includes a total of three join operations (ie ⁇ p14 ⁇ p34 , P23 and ⁇ p12 ).
  • join operation ⁇ p14 ⁇ p34 since the join operation is an inner join, its predicate needs to be converted into a conjunction paradigm (the join paradigm of p14 ⁇ p34 is itself), since the input tables of p14 and p34 are not the same, They cannot be combined into one predicate.
  • connection operations P23 since the join operation is not an inner join, its predicate (ie p23) is treated as a predicate.
  • the size of the sequence numbers of the above processes does not mean the order of execution, and the order of execution of each process should be determined by its function and internal logic, and should not be directed to the embodiments of the present invention.
  • the implementation process constitutes any limitation.
  • the apparatus 1700 may further include:
  • the determining module 1750 is specifically configured to: in accordance with the basic information of the recombined connection predicate of the original query plan and the constraint condition of the recombined connection predicate of the original query plan, in the candidate query plan set. Determine the set of equivalent query plans.
  • the basic information of the connection predicate includes an input table of the connection predicate, and the connection predicate is located in an input table of the connection predicate included in a left subtree of the concatenation operation, where the connection predicate is located.
  • the connection operation rule includes an operation level rule and a predicate level rule
  • the combination of operational levels (e 1 o a p12 e 2 )o b p23 e 3 e 1 o a p12 (e 2 o b p23 e 3 )
  • the right permutation rule of the operation level e 1 o a p13 (e 2 o b p23 e 3 ) e 2 o b p23 (e 1 o a p13 e 3 )
  • the rules of the predicate level include the binding rules of the
  • o A is in the right subtree of the subtree with o B as the root node. If o A and o B do not satisfy the combination of the operation level and the predicate level, then each of the reorganized on o B The connection predicate adds a second constraint. If o A and o B do not satisfy the right permutation rule of the operation level and the right permutation rule of the predicate level, a first constraint condition is added for each recombination predicate on o B ;
  • the determining module 1750 is specifically configured to:
  • connection type of each first connection operation of P' is an inner connection
  • the first connection operation is a connection operation having two or more recombined connection predicates, and each of the two or more recombined connection predicates
  • the connection type of the connection operation of the predicate in P is an inner connection
  • the apparatus 1700 for data query according to an embodiment of the present invention may correspond to an execution body of a method of data query according to an embodiment of the present invention, and the above and other operations and/or functions of respective modules in the apparatus 1700 are respectively implemented to implement the foregoing respective methods.
  • the corresponding process, for the sake of brevity, will not be described here.
  • FIG. 18 shows a schematic block diagram of a database system 1800 in accordance with an embodiment of the present invention.
  • the database system 1800 includes the device 1700 and database 1810 for data query of the foregoing embodiments of the present invention.
  • the database system 1800 can perform the method of data query of the foregoing embodiment of the present invention, and perform a query in the database 1810.

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

一种数据查询的方法、装置和数据库系统。该方法包括:接收数据查询请求(S1110);根据该数据查询请求,生成原始查询计划(S1120);根据所述原始查询计划,获取候选查询计划集合(S1130);重组该原始查询计划中的连接谓词(S1140);确定该原始查询计划的重组后的连接谓词的基本信息(S1150);基于连接操作规则,确定该原始查询计划的重组后的连接谓词的约束条件(S1160);根据该原始查询计划的重组后的连接谓词的基本信息和该原始查询计划的重组后的连接谓词的约束条件,确定该原始查询计划的等价查询计划(S1170);根据该原始查询计划的等价查询计划进行查询(S1180)。该数据查询的方法、装置和数据库系统能够提升数据查询性能。

Description

数据查询的方法、装置和数据库系统 技术领域
本发明涉及信息技术领域,并且更具体地,涉及数据查询的方法、装置和数据系统。
背景技术
结构化查询语言(Structured Query Language,SQL)是关系数据库管理系统的标准语言。它是一种高级的描述性非过程化语言,即它允许用户在高层数据结构上获取所需要的数据,但是它不要求用户指定获取数据的方法,即通常所说的查询计划。查询计划可以表示为一颗树,树的叶子节点表示输入表,中间节点表示操作。一个SQL查询通常会有很多等价的查询计划,而且不同查询计划的执行时间会有差别,所以数据库系统会有一个查询优化器组件来选择最优(即执行时间最短)的查询计划。
查询优化器的主要功能是确定原始查询计划的等价查询计划并选择最优的查询计划。然而,现有技术中有些等价查询计划会被遗漏,从而影响查询性能。
发明内容
本发明实施例提供了一种数据查询的方法、装置和数据库系统,能够提升数据查询性能。
第一方面,本发明实施例提供了一种数据查询的方法,该方法由数据库系统执行,该数据库系统运行在计算机设备上,该方法包括:
接收数据查询请求;
根据该数据查询请求,生成原始查询计划;
重组该原始查询计划中的连接谓词;
确定该原始查询计划的重组后的连接谓词的基本信息;
基于连接操作规则,确定该原始查询计划的重组后的连接谓词的约束条件;
根据该原始查询计划的重组后的连接谓词的基本信息和该原始查询计划的重组后的连接谓词的约束条件,确定该原始查询计划的等价查询计划;
根据该原始查询计划的等价查询计划进行查询。
本发明实施例根据谓词基本信息和基于连接操作规则得到的约束条件确定原始查询计划的等价查询计划,可以得到原始查询计划的较多的等价查询计划,从而能够提升数据查询性能。
在某些实现方式中,根据该原始查询计划的重组后的连接谓词的基本信息和该原始查询计划的重组后的连接谓词的约束条件,确定该原始查询计划的等价查询计划,包括:
根据该原始查询计划的重组后的连接谓词的基本信息和该原始查询计划的重组后的连接谓词的约束条件,确定该原始查询计划的等价查询计划集合;
根据该原始查询计划的等价查询计划进行查询,包括:
从该等价查询计划集合中选择查询计划进行查询。
在某些实现方式中,该方法还包括:
根据该原始查询计划,获取候选查询计划集合;
这里应获取尽可能多的原始查询计划的候选查询计划,优选的,可以使用查询计划枚举算法枚举原始查询计划的所有候选查询计划,可采用典型的枚举算法,如IBM System R中使用的动态规划算法。
根据该原始查询计划的重组后的连接谓词的基本信息和该原始查询计划的重组后的连接谓词的约束条件,确定该原始查询计划的等价查询计划集合,包括:
根据该原始查询计划的重组后的连接谓词的基本信息和该原始查询计划的重组后的连接谓词的约束条件,在该候选查询计划集合中确定该等价查询计划集合。
本发明实施例根据谓词基本信息和基于连接操作规则得到的约束条件在候选查询计划集合中确定原始查询计划的等价查询计划,可以得到原始查询计划的所有等价查询计划,从而能够进一步提升数据查询性能。
在某些实现方式中,重组该原始查询计划中的连接谓词,包括:
对于该原始查询计划中的内连接操作,将该内连接操作的所有连接谓词转化成合取范式并合并具有相同输入表的连接谓词;
对于该原始查询计划中的非内连接操作,将该非内连接操作的所有连接谓词合并成一个连接谓词。
在某些实现方式中,该连接谓词的基本信息包括该连接谓词的输入表,该连接谓词所在连接操作的左子树中包括的该连接谓词的输入表,该连接谓词所在连接操作的右子树中包括的该连接谓词的输入表和该连接谓词所在连接操作的连接类型。
在某些实现方式中,该连接操作规则包括操作级别的规则和谓词级别的规则,其中,该操作级别的规则包括操作级别的交换规则e1oa p12e2=e2oa p12e1、操作级别的结合规则(e1oa p12e2)ob p23e3=e1oa p12(e2ob p23e3)、操作级别的左置换规则(e1oa p12e2)ob p13e3=(e1ob p13e3)oa p12e2和操作级别的右置换规则e1oa p13(e2ob p23e3)=e2ob p23(e1oa p13e3),该谓词级别的规则包括谓词级别的结合规则(e1oa p12e2)ob p∧p23e3=e1oa p12∧p(e2ob p23e3)、谓词级别的左置换规则(e1oa p12e2)ob p13∧p e3=(e1ob p13e3)oa p12∧p e2和谓词级别的右置换规则e1oa p∧p13(e2ob p23e3)=e2ob p∧p23(e1oa p13e3),其中,ei为查询表达式,oa,ob为连接操作,pij为ei和ej之间的连接谓词。
在某些实现方式中,基于连接操作规则,确定该原始查询计划的重组后的连接谓词的约束条件,包括:
对于该原始查询计划中的每个连接操作节点oB,遍历以oB为根节点的子树中的每一个连接操作节点oA
oA在以oB为根节点的子树的左子树中时,若oA和oB不满足操作级别的结合规则和谓词级别的结合规则,则为oB上的重组后的每个连接谓词添加第一约束条件,若oA和oB不满足操作级别的左置换规则和谓词级别的左置换规则,则为oB上的重组后的每个连接谓词添加第二约束条件;
oA在以oB为根节点的子树的右子树中时,若oA和oB不满足操作级别的结合规则和谓词级别的结合规则,则为oB上的重组后的每个连接谓词添加第二约束条件,若oA和oB不满足操作级别的右置换规则和谓词级别的右置换规则,则为oB上的重组后的每个连接谓词添加第一约束条件;
该第一约束条件为T(e2)->T(e1)∩T(pa1∧pa2∧…∧pan),该第二约束条件为T(e1)->T(e2)∩T(pa1∧pa2∧…∧pan),T(e1)表示以oA为根节点的子树的左子树e1包括的原始输入表,T(e2)表示以oA为根节点的子树的右子树e2包括的原始输入表,T(pa1∧pa2∧…∧pan)表示oA上的重组后的连接谓词pa1∧pa2∧…∧pan中包括的原始输入表,T1->T2表示若以T1->T2所约束的连接谓词所在的连接操作为根节点的第一子树包括T1中的任意一个输入表,则该第一子 树包括T2中的所有输入表。
在某些实现方式中,根据该原始查询计划的重组后的连接谓词的基本信息和该原始查询计划的重组后的连接谓词的约束条件,确定该原始查询计划的等价查询计划,包括:
若第一候选查询计划P’满足以下条件,则确定P’为该原始查询计划P的等价查询计划:
P’的每个第一连接操作的连接类型是内连接,该第一连接操作为具有两个以上重组后的连接谓词的连接操作,且该两个以上重组后的连接谓词中的每个连接谓词在P中所对应的连接操作的连接类型是内连接;
对于P’中每个连接操作ob’上的每个连接谓词p,
在ob’不满足操作级别的交换规则时,P’中的Tl(p)和P中的Tl(p)相等且P’中的Tr(p)和P中的Tr(p)相等,其中,Tl(p)表示p所在连接操作的左子树中包括的p的输入表,Tr(p)表示p所在连接操作的右子树中包括的p的输入表,
在ob’满足操作级别的交换规则时,P’中的Tl(p)和P中的Tl(p)相等且P’中Tr(p)和P中的Tr(p)相等,或者P’中的Tl(p)和P中的Tr(p)相等且P’中的Tr(p)和P中的Tl(p)相等;
对于P’中每个连接操作ob’上的每个连接谓词p,p满足p在P中的约束条件。
在某些实现方式中,从该等价查询计划集合中选择查询计划进行查询,包括:
从该等价查询计划集合中选择代价最小的查询计划进行查询。
第二方面,本发明实施例提供了一种数据查询的装置。该装置包括执行第一方面的方法的模块。
第三方面,本发明实施例提供了一种数据查询的装置。该装置包括处理器、存储器和通信接口。处理器与存储器和通信接口耦合。存储器用于存储指令,处理器用于执行该指令,通信接口用于在处理器的控制下与其他网元进行通信。该指令在被处理器执行时,使处理器执行第一方面的方法。
第四方面,本发明实施例提供了一种数据库系统。该数据库系统包括第二方面或第三方面的数据查询的装置和数据库。
在某些实现方式中,原始查询计划的等价查询计划为通过四个操作级别 的规则和三个谓词级别的规则中的至少一个规则从该原始查询计划转化得到的查询计划。
在某些实现方式中,等价查询计划空间包括通过四个操作级别的规则和三个谓词级别的规则中的至少一个规则从原始查询计划转化得到的查询计划。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a和图1b是本发明实施例的应用场景的示意图。
图1c是本发明实施例的连接操作的示例。
图2是本发明实施例的等价查询计划的示例。
图3是本发明实施例的操作级别的交换规则的示例。
图4是本发明实施例的操作级别的结合规则的示例。
图5是本发明实施例的操作级别的左置换规则的示例。
图6是本发明实施例的为操作级别的右置换规则的示例。
图7是本发明实施例的谓词级别的结合规则的示例。
图8是本发明实施例的谓词级别的左置换规则的示例。
图9是本发明实施例的谓词级别的右置换规则的示例。
图10是本发明实施例的等价查询计划的示例。
图11是本发明实施例的数据查询的方法的示意性流程图。
图12是本发明实施例的查询计划的示例。
图13是本发明实施例的确定原始查询计划中谓词约束条件的流程图。
图14是本发明实施例的添加约束条件的一个示意图。
图15是本发明实施例的添加约束条件的另一示意图。
图16是本发明实施例的确定等价查询计划的示例。
图17是本发明实施例的数据查询的装置的示意性框图。
图18是本发明实施例的数据库系统的示意性框图。
图19是本发明实施例的数据查询的装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明实施例的技术方案可以应用于数据库系统中。图1a和图1b是本发明实施例的应用场景的示意图,其中,图1a为单服务器的数据库系统,图1b为分布式数据库系统。
如图1a所示,单服务器的数据库系统(即服务器)包括数据库管理系统和数据库,用于处理客户端的查询请求并向客户端返回查询结果,其中数据库管理系统包括查询优化器等管理组件,用于管理该数据库系统。针对该场景,本发明实施例的方法可以由服务器、或服务器中的数据库管理系统、或数据库管理系统中的查询优化器执行。
如图1b所示,分布式数据库系统包括多个服务器和分布式管理系统,用于处理客户端的查询请求并向客户端返回查询结果,其中每个服务器包括数据库管理系统和数据库,分布式管理系统包括查询优化器等管理组件,用于管理该分布式数据库系统。针对该场景,本发明实施例的方法可以由分布式数据库系统、或分布式数据库系统中的分布式管理系统、或分布式管理系统中的查询优化器执行。
为了便于理解本发明实施例,下面首先对数据库系统相关的术语进行说明。
在本发明的各种实施例中,连接操作也可以称之为操作或连接,连接操作将数据库中的两个或多个表组合成一个结果表。连接谓词也可以称之为谓词,连接谓词用来描述两个或多个表中列的关系。连接操作通过连接谓词将数据库中的表组合起来。
连接操作种类有内连接(inner join),左/右外连接(left/right outer join),全外连接(full outer join),左/右半连接(left/right semi-join)和左/右反连接(left/right anti-join)。
内连接(inner join)是数据库中最普通的连接操作。内连接基于连接谓词将两张表(如R和S)的列组合在一起,产生新的结果表。该操作会将R表的 每一行和S表的每一行进行比较,并找出满足连接谓词的组合。当连接谓词被满足,R和S中匹配的行会按列组合(并排组合)成结果集中的一行。
左外连接(left outer join)是内连接的一个扩展,它与内连接的不同之处在于,若R和S两表进行左外连接,如果左表(即表R)中的一行在右表S未找到符合连接谓词的匹配行,不同于内连接会直接舍弃该记录,左外连接还是会返回一条记录,该记录保留了左表中所有的列值,但是所有来自于右表的每一列的值都为空(NULL)。右外连接(right outer join)类似于左外连接,唯一的不同之处在于如果右表中的一行在左表中没有找到匹配行,那么该操作返回的记录中所有来自于左表的每一列的值都为空。全外连接(full outer join)类似于左/右外连接,唯一的区别在于无论左表还是右表中的一行没有找到匹配行,该操作都会返回一个记录并且该记录中缺少匹配的表的列值都为空。
左半连接(left semi-join)只返回左表中那些能够在右表中找到匹配(即满足连接谓词)的行。右半连接(right semi-join)只返回右表中那些能在左表中找到匹配(即满足连接谓词)的行。
左反连接(left anti-join)只返回左表中那些未能在右表中找到匹配(即满足连接谓词)的行。右反连接(right anti-join)只返回右表中那些未能在左表中找到匹配(即满足连接谓词)的行。由半连接和反连接的定义可以看出,反连接和半连接是互为补集的关系。
图1c示出了上述各种连接操作的示例。在图1c中,以对表R和S进行连接操作为例,其中连接谓词为R.b=S.c,各种连接操作的结果如图1c所示。
图2示出了等价查询计划的示例。如图2所示,对于一个SQL查询R1p12R2p23R3,其中,R1、R2和R3表示输入表,∞表示内连接操作,p12和p23分别表示R1和R2的连接谓词和R2和R3的连接谓词,图2中两个查询计划都是该查询的等价查询计划。
在本发明各种实施例中,连接操作规则包括操作级别的规则和谓词级别的规则,其中,操作级别的规则包括操作级别的交换规则、操作级别的结合规则、操作级别的左置换规则和操作级别的右置换规则,谓词级别的规则包括谓词级别的结合规则、谓词级别的左置换规则和谓词级别的右置换规则。在以下说明中,各符号的意义如表1所示。
表1
Figure PCTCN2015095909-appb-000001
Figure PCTCN2015095909-appb-000002
操作级别的交换规则:e1oa p12e2=e2oa p12e1。图3为操作级别的交换规则的一个示例。表2为操作级别的交换规则的连接操作表,示出了各个连接操作是否满足操作级别的交换规则,其中,+表示满足,-表示不满足。应理解,由于右外连接,右半连接和右反连接可以转化成相对应的左连接操作,所以本说明书中只考虑左连接操作。
表2
Figure PCTCN2015095909-appb-000003
操作级别的结合规则:(e1oa p12e2)ob p23e3=e1oa p12(e2ob p23e3)。图4为操作级别的结合规则的一个示例。表3为操作级别的结合规则的连接操作表,示出了任意两个连接操作是否满足操作级别的结合规则,其中,+表示满足,-表示不满足,含有上标的+表示条件满足,即只有满足了上标中的条件,对应的两个连接操作才满足该结合规则。
表3
  内连接 左半连接 左反连接 左外连接 全外连接
内连接 + + + + -
左半连接 - - - - -
左反连接 - - - - -
左外连接 - - - +1 -
全外连接 - - - +1 +2
1p23rejects null on A(e2)   2p12and p23rejects null on A(e2)
操作级别的左置换规则:(e1oa p12e2)ob p13e3=(e1ob p13e3)oa p12e2。图5为操作级别的左置换规则的一个示例。表4为操作级别的左置换规则的连接操作表,示出了任意两个连接操作是否满足操作级别的左置换规则,其中,+表示满足,-表示不满足,含有上标的+表示条件满足,即只有满足了上标中的条件,对应的两个连接操作才满足该左置换规则。
表4
  内连接 左半连接 左反连接 左外连接 全外连接
内连接 + + + + -
左半连接 + + + + -
左反连接 + + + + -
左外连接 + + + + +1
全外连接 - - - +2 +3
1p12rejects null on A(e1)    2p13rejects null on A(e3)
3p12and p13rejects null on A(e1)
操作级别的右置换规则:e1oa p13(e2ob p23e3)=e2ob p23(e1oa p13e3)。图6为为操作级别的右置换规则的一个示例。表5为操作级别的右置换规则的连接操作表,示出了任意两个连接操作是否满足操作级别的右置换规则,其中,+表示满足,-表示不满足,含有上标的+表示条件满足,即只有满足了上标中的条件,对应的两个连接操作才满足该右置换规则。
表5
  内连接 左半连接 左反连接 左外连接 全外连接
内连接 + - - - -
左半连接 - - - - -
左反连接 - - - - -
左外连接 - - - - -
全外连接 - - - - +1
1p13and p23rejects null on A(e3)
在上述操作级别的规则中,操作中的连接谓词与操作是绑定在一块的, 即连接谓词不能在操作间互相移动。区别于操作级别的规则,谓词级别的规则可以在操作间互相移动谓词。
谓词级别的结合规则:(e1oa p12e2)ob p∧p23e3=e1oa p12∧p(e2ob p23e3)。∧表示逻辑与操作,p代表除p23以外的连接谓词,并且p不为空。图7为谓词级别的结合规则的一个示例。
谓词级别的左置换规则:(e1oa p12e2)ob p13∧p e3=(e1ob p13e3)oa p12∧p e2。∧表示逻辑与操作,p代表除p13以外的连接谓词,并且p不为空。图8为谓词级别的左置换规则的一个示例。
谓词级别的右置换规则:e1oa p∧p13(e2ob p23e3)=e2ob p∧p23(e1oa p13e3)。∧表示逻辑与操作,p代表除p13以外的连接谓词,并且p不为空。图9为谓词级别的右置换规则的一个示例。
表6为谓词级别的规则的连接操作表,示出了任意两个连接操作是否满足谓词级别的规则,其中,+表示满足,-表示不满足。上述三个谓词级别的规则的连接操作表是一样的,即表6统一代表了三个谓词级别的规则的连接操作表。
表6
  内连接 左半连接 左反连接 左外连接 全外连接
内连接 + - - - -
左半连接 - - - - -
左反连接 - - - - -
左外连接 - - - - -
全外连接 - - - - -
在本发明实施例中,所有可以通过上述操作级别的规则或谓词级别的规则转化得到的查询计划为等价查询计划。也就是说,本发明实施例中的等价的查询计划空间为所有可以通过四个操作级别的规则和三个谓词级别的规则中的至少一个规则转化得到的查询计划。操作间是否满足某个规则可查询该规则的连接操作表。
相比于仅通过操作级别的规则转化得到的等价的查询计划空间,本发明实施例中的等价的查询计划空间更完整。也就是说,仅通过操作级别的规则进行转化并不能得到全部的等价查询计划。例如,如图10所示,相对于左 边的原始查询计划,右边的两个候选查询计划移动了操作间的连接谓词,所以他们并不能由左边的原始查询计划通过上述四个操作级别的规则转化得到,但是事实上右边的两个候选查询计划与左边的原始查询计划是等价的。
本发明实施例基于操作级别的规则和谓词级别的规则确定原始查询计划的等价查询计划,可以得到原始查询计划的所有等价查询计划。
图11示出了根据本发明实施例的数据查询的方法1100的示意性流程图。该方法1100由数据库系统执行,数据库系统运行在计算机设备上。具体的,该方法由运行在计算机上的数据查询的装置执行,其中数据查询的装置可以为数据库系统中的装置,例如查询优化器,也可以为数据库系统本身。
S1110,接收数据查询请求。
例如,该数据查询请求可以为用户以SQL语言输入的数据查询请求。
S1120,根据该数据查询请求,生成原始查询计划。
在接收到数据查询请求后,解析该数据查询请求,得到原始查询计划。
可选地,S1130,根据该原始查询计划,获取候选查询计划集合。
候选查询计划集合包括原始查询计划的所有候选查询计划。该步骤可以使用查询计划枚举算法枚举原始查询计划的所有候选查询计划。例如,典型的枚举算法有IBM System R中使用的动态规划算法。
在枚举原始查询计划的所有候选查询计划后,接下来可以在所有候选查询计划中确定原始查询计划的等价查询计划。
该步骤为可选步骤,也就是说,本发明实施例既可以通过下面的步骤直接从原始查询计划得到等价查询计划或等价查询计划集合,也可以通过下面的步骤从候选查询计划集合中得到等价查询计划集合。
S1140,重组该原始查询计划中的连接谓词。
具体地,对于该原始查询计划中的内连接操作,将该内连接操作的所有连接谓词转化成合取范式并合并具有相同输入表的连接谓词;对于该原始查询计划中的非内连接操作,将该非内连接操作的所有连接谓词合并成一个连接谓词。
换句话说,重组方式为遍历原始查询计划中的每一个连接操作节点,并根据该连接操作节点的连接类型分以下两种情况处理:
如果该连接操作是内连接,那么把该连接操作的所有的谓词转化成合取范式(conjunctive normal form,CNF),即p1∧p2∧…∧pn的形式,并把具有 相同输入表的谓词合并成一个谓词;
如果该连接操作不是内连接,把该连接操作中的所有谓词合并成一个谓词。
S1150,确定该原始查询计划的重组后的连接谓词的基本信息。
在本发明各种实施例中,连接谓词的基本信息包括该连接谓词的输入表,该连接谓词所在连接操作的左子树中包括的该连接谓词的输入表,该连接谓词所在连接操作的右子树中包括的该连接谓词的输入表和该连接谓词所在连接操作的连接类型。
具体地,对于谓词p,该谓词p的基本信息包括:
T(p):p包括的输入表;
Tl(p):p所在操作的左子树中包括的p的输入表;
Tr(p):p所在操作的右子树中包括的p的输入表;
O(p):p所在操作的连接类型。
例如,对于图12中所示的根节点的连接谓词p={R1.a+R2.b=R3.c},它的基本信息如下:
T(p):{R1,R2,R3};
Tl(p):{R1,R2};
Tr(p):{R3};
O(p):内连接。
S1160,基于连接操作规则,确定该原始查询计划的重组后的连接谓词的约束条件。
具体而言,对于该原始查询计划中的每个连接操作节点oB,遍历以oB为根节点的子树中的每一个连接操作节点oA
oA在以oB为根节点的子树的左子树中时,若oA和oB不满足操作级别的结合规则和谓词级别的结合规则,则为oB上的重组后的每个连接谓词添加第一约束条件,若oA和oB不满足操作级别的左置换规则和谓词级别的左置换规则,则为oB上的重组后的每个连接谓词添加第二约束条件;
oA在以oB为根节点的子树的右子树中时,若oA和oB不满足操作级别的结合规则和谓词级别的结合规则,则为oB上的重组后的每个连接谓词添加第二约束条件,若oA和oB不满足操作级别的右置换规则和谓词级别的右置换规则,则为oB上的重组后的每个连接谓词添加第一约束条件;
该第一约束条件为T(e2)->T(e1)∩T(pa1∧pa2∧…∧pan),该第二约束条件为T(e1)->T(e2)∩T(pa1∧pa2∧…∧pan),T(e1)表示以oA为根节点的子树的左子树e1包括的原始输入表,T(e2)表示以oA为根节点的子树的右子树e2包括的原始输入表,T(pa1∧pa2∧…∧pan)表示oA上的重组后的连接谓词pa1∧pa2∧…∧pan中包括的原始输入表,T1->T2表示若以T1->T2所约束的连接谓词所在的连接操作为根节点的第一子树包括T1中的任意一个输入表,则该第一子树包括T2中的所有输入表。∩为交集符号。
例如,图13示出了确定原始查询计划中谓词约束条件的一个流程图。图13所示的流程包含两层遍历,外层遍历原始查询计划中的每一个操作节点oB(oB上重组后的谓词是pb1∧pb2∧…∧pbn),内层遍历以oB为根节点的查询子树中的每一个操作节点oA(oA上重组后的谓词是pa1∧pa2∧…∧pan),然后根据oA和oB的关系分以下两种情况为oB上每个谓词添加约束条件:
如果oA在oB左子树中,那么按照图14所示方法为oB上每一个谓词pbi添加约束条件;
如果oA在oB右子树中,那么按照图15所示方法为oB上每一个谓词pbi添加约束条件。
S1170,根据该原始查询计划的重组后的连接谓词的基本信息和该原始查询计划的重组后的连接谓词的约束条件,确定该原始查询计划的等价查询计划。
可选地,可以根据该原始查询计划的重组后的连接谓词的基本信息和该原始查询计划的重组后的连接谓词的约束条件,确定该原始查询计划的等价查询计划集合。该等价查询计划集合中的查询计划为该原始查询计划的等价查询计划。
在该步骤中,可选地,若已经通过枚举方式得到了原始查询计划的候选查询计划集合,则可以在候选查询计划集合中确定等价查询计划集合,即判断每个候选查询计划是否原始查询计划的等价查询计划;若没有候选查询计划集合,则可以每次从原始查询计划得到一个候选查询计划,同时判断该候选查询计划是否原始查询计划的等价查询计划。
具体地,若第一候选查询计划P’满足以下条件,则确定P’为该原始查询计划P的等价查询计划:
P’的每个第一连接操作的连接类型是内连接,该第一连接操作为具有两 个以上重组后的连接谓词的连接操作,且该两个以上重组后的连接谓词中的每个连接谓词在P中所对应的连接操作的连接类型是内连接(该条件可以称为连接类型一致性);
对于P’中每个连接操作ob’上的每个连接谓词p,
在ob’不满足操作级别的交换规则时,P’中的Tl(p)和P中的Tl(p)相等且P’中的Tr(p)和P中的Tr(p)相等,其中,Tl(p)表示p所在连接操作的左子树中包括的p的输入表,Tr(p)表示p所在连接操作的右子树中包括的p的输入表,
在ob’满足操作级别的交换规则时,P’中的Tl(p)和P中的Tl(p)相等且P’中Tr(p)和P中的Tr(p)相等,或者P’中的Tl(p)和P中的Tr(p)相等且P’中的Tr(p)和P中的Tl(p)相等(该条件可以称为输入表信息一致性);
对于P’中每个连接操作ob’上的每个连接谓词p,p满足p在P中的约束条件(该条件可以称为约束条件一致性)。如果前面已经得到了原始查询计划的候选查询计划集合,这里的第一候选查询计划P’可以是候选查询计划中的任一候选查询计划。
通过上述方式,可以得到原始查询计划的所有等价查询计划。也就是说,本发明实施例中得到的等价查询计划集合是最完整的。
S1180,根据该原始查询计划的等价查询计划进行查询。
可选地,可以从该等价查询计划集合中选择查询计划进行查询。即在前面得到的等价查询计划集合中选择查询计划进行查询。具体地,可以从该等价查询计划集合中选择代价最小的查询计划进行查询,并返回查询结果。
由于本发明实施例中的等价查询计划集合包括了原始查询计划的所有等价查询计划,因此本发明实施例能选到最优的查询计划。考虑到不同查询计划会有几十倍甚至几百倍的性能差异,本发明实施例的方法能显著提高数据查询性能。
因此,本发明实施例的数据查询的方法,根据谓词基本信息和基于连接操作规则得到的约束条件确定原始查询计划的等价查询计划,可以得到原始查询计划的所有等价查询计划,从而能够提升数据查询性能。
在本发明实施例中,等价查询计划集合包括所有可以通过四个操作级别的规则和三个谓词级别的规则中的至少一个规则从原始查询计划转化得到的查询计划。上述步骤S1140-S1170给出了确定原始查询计划的等价查询计 划的方法。下面结合具体的例子详细说明确定原始查询计划的等价查询计划的方法。应注意,这只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
图16示出了三个查询计划P,P’和P”,其中∞表示内连接操作,
Figure PCTCN2015095909-appb-000004
表示左反连接,P是原始查询计划,P’和P”是候选查询计划。可按照下述方式确定候选查询计划P’和P’是否和原始查询计划P等价。
1.重组原始查询计划P中的连接谓词并确定重组后的连接谓词的基本信息:P中一共包括三个连接操作(即∞p14∧p34
Figure PCTCN2015095909-appb-000005
p23和∞p12)。对于连接操作∞p14∧p34,由于该连接操作是内连接,所以它的谓词需要被转化成合取范式(p14∧p34的合取范式就是它本身),由于p14和p34的输入表不相同,所以它们不能被合并成一个谓词。对于连接操作
Figure PCTCN2015095909-appb-000006
p23,由于该连接操作不是内连接,所以它的谓词(即p23)被当成一个谓词。类似地,连接操作∞p12中的谓词进行重组后仍为p12。谓词重组之后,确定重组后谓词的基本信息。表7列出了P中重组后谓词的基本信息。
表7
p T(p) Tl(p) Tr(p) O(p)
p14 {R1,R4} {R1} {R4} 内连接
p34 {R3,R4} {R3} {R4} 内连接
p23 {R2,R3} {R2} {R3} 左反连接
p12 {R1,R2} {R1} {R2} 内连接
2.确定重组后连接谓词的约束条件:对于操作∞p14∧p34,它有两个子孙操作(即∞p12
Figure PCTCN2015095909-appb-000007
p23),所以需要判断这两个子孙操作和该操作是否满足相应规则来获取谓词p14和p34的约束条件。对于子孙操作∞p12,它跟操作∞p14 ∧p34既满足操作级别的结合规则和谓词级别的结合规则,也满足操作级别的左置换规则和谓词级别的左置换规则,所以不需要添加任何约束规则。对于子孙操作
Figure PCTCN2015095909-appb-000008
p2,它跟操作∞p14∧p34不满足操作级别的结合规则和谓词级别的结合规则,所以需要为p14和p34添加规则R3->R2。另外
Figure PCTCN2015095909-appb-000009
p2跟操作∞p14∧p34不满足谓词级别的左置换规则,但是满足操作级别的左置换规则,所以不需要再添加约束规则。类似地,可以通过判断操作∞p12
Figure PCTCN2015095909-appb-000010
p23与其子孙操作是否满足相应规则来获取他们的谓词的约束条件。表8列出了原始查询P中重组后谓词的约束条件。
表8
p 约束条件
p14 R3->R2
p34 R3->R2
p23
p12
3.根据谓词的基本信息和约束条件确定等价查询计划:对于候选查询计划P’,它跟原始查询计划P是不等价的,因为P’违反了连接类型一致性(P’的根节点操作包含了两个谓词,但是该节点的操作类型不是内连接,而且p23在P中所对应的操作的连接类型也不是内连接)。对于候选查询P”,因为它满足连接类型一致性(P”中的操作∞p12∧p34是内连接,并且p12和p34在原始查询P中所对应的操作也是内连接),输入表信息一致性(P”中谓词的输入表信息和表中谓词的输入表信息是一致的)和约束条件一致性(P”中的谓词满足表中所示的约束条件),所以P”跟原始查询计划P是等价的。
本发明实施例的确定等价查询计划的方法,能够得到原始查询计划的所有等价查询计划,从而能够提升数据查询的查询性能。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
上文详细描述了根据本发明实施例的数据查询的方法,下面将描述根据本发明实施例的数据查询的装置和数据库系统。该数据查询的装置和该数据库系统可以执行前述本发明实施例的数据查询的方法。
图17示出了根据本发明实施例的数据查询的装置1700的示意性框图。该装置1700可以为数据库系统中的装置,例如查询优化器。如图17所示,该装置1700包括:
接收模块1710,用于接收数据查询请求;
生成模块1720,用于根据该数据查询请求,生成原始查询计划;
重组模块1740,用于重组该原始查询计划中的连接谓词;
确定模块1750,用于确定该原始查询计划的重组后的连接谓词的基本信息;基于连接操作规则,确定该原始查询计划的重组后的连接谓词的约束条件;以及根据该原始查询计划的重组后的连接谓词的基本信息和该原始查询 计划的重组后的连接谓词的约束条件,确定该原始查询计划的等价查询计划;
查询模块1780,用于根据该原始查询计划的等价查询计划进行查询。
本发明实施例的数据查询的装置,根据谓词基本信息和基于连接操作规则得到的约束条件确定原始查询计划的等价查询计划,可以得到原始查询计划的所有等价查询计划,从而能够提升数据查询性能。
可选地,在本发明一个实施例中,该确定模块1750具体用于,根据该原始查询计划的重组后的连接谓词的基本信息和该原始查询计划的重组后的连接谓词的约束条件,确定该原始查询计划的等价查询计划集合;
该查询模块1780具体用于,从该等价查询计划集合中选择查询计划进行查询。
可选地,在本发明一个实施例中,该装置1700还可以包括:
获取模块1730,用于根据该原始查询计划,获取候选查询计划集合;
在这种情况下,该确定模块1750具体用于,根据该原始查询计划的重组后的连接谓词的基本信息和该原始查询计划的重组后的连接谓词的约束条件,在该候选查询计划集合中确定该等价查询计划集合。
可选地,在本发明一个实施例中,该重组模块1740具体用于:
对于该原始查询计划中的内连接操作,将该内连接操作的所有连接谓词转化成合取范式并合并具有相同输入表的连接谓词;
对于该原始查询计划中的非内连接操作,将该非内连接操作的所有连接谓词合并成一个连接谓词。
可选地,在本发明一个实施例中,该连接谓词的基本信息包括该连接谓词的输入表,该连接谓词所在连接操作的左子树中包括的该连接谓词的输入表,该连接谓词所在连接操作的右子树中包括的该连接谓词的输入表和该连接谓词所在连接操作的连接类型。
可选地,在本发明一个实施例中,该连接操作规则包括操作级别的规则和谓词级别的规则,其中,该操作级别的规则包括操作级别的交换规则e1oa p12e2=e2oa p12e1、操作级别的结合规则(e1oa p12e2)ob p23e3=e1oa p12(e2ob p23e3)、操作级别的左置换规则(e1oa p12e2)ob p13e3=(e1ob p13e3)oa p12e2和操作级别的右置换规则e1oa p13(e2ob p23e3)=e2ob p23(e1oa p13e3),该谓词级别的规则包括谓词级别的结合规则(e1oa p12e2)ob p∧p23e3=e1oa p12∧p(e2ob p23e3)、谓词级别 的左置换规则(e1oa p12e2)ob p13∧p e3=(e1ob p13e3)oa p12∧p e2和谓词级别的右置换规则e1oa p∧p13(e2ob p23e3)=e2ob p∧p23(e1oa p13e3),其中,ei为查询表达式,oa,ob为连接操作,pij为ei和ej之间的连接谓词。
可选地,在本发明一个实施例中,该确定模块1750具体用于:
对于该原始查询计划中的每个连接操作节点oB,遍历以oB为根节点的子树中的每一个连接操作节点oA
oA在以oB为根节点的子树的左子树中时,若oA和oB不满足操作级别的结合规则和谓词级别的结合规则,则为oB上的重组后的每个连接谓词添加第一约束条件,若oA和oB不满足操作级别的左置换规则和谓词级别的左置换规则,则为oB上的重组后的每个连接谓词添加第二约束条件;
oA在以oB为根节点的子树的右子树中时,若oA和oB不满足操作级别的结合规则和谓词级别的结合规则,则为oB上的重组后的每个连接谓词添加第二约束条件,若oA和oB不满足操作级别的右置换规则和谓词级别的右置换规则,则为oB上的重组后的每个连接谓词添加第一约束条件;
该第一约束条件为T(e2)->T(e1)∩T(pa1∧pa2∧…∧pan),该第二约束条件为T(e1)->T(e2)∩T(pa1∧pa2∧…∧pan),T(e1)表示以oA为根节点的子树的左子树e1包括的原始输入表,T(e2)表示以oA为根节点的子树的右子树e2包括的原始输入表,T(pa1∧pa2∧…∧pan)表示oA上的重组后的连接谓词pa1∧pa2∧…∧pan中包括的原始输入表,T1->T2表示若以T1->T2所约束的连接谓词所在的连接操作为根节点的第一子树包括T1中的任意一个输入表,则该第一子树包括T2中的所有输入表。
可选地,在本发明一个实施例中,该确定模块1750具体用于:
若第一候选查询计划P’满足以下条件,则确定P’为该原始查询计划P的等价查询计划:
P’的每个第一连接操作的连接类型是内连接,该第一连接操作为具有两个以上重组后的连接谓词的连接操作,且该两个以上重组后的连接谓词中的每个连接谓词在P中所对应的连接操作的连接类型是内连接;
对于P’中每个连接操作ob’上的每个连接谓词p,
在ob’不满足操作级别的交换规则时,P’中的Tl(p)和P中的Tl(p)相等且P’中的Tr(p)和P中的Tr(p)相等,其中,Tl(p)表示p所在连接操作的左子树中包括的p的输入表,Tr(p)表示p所在连接操作的右子树中包括的p的输入 表,
在ob’满足操作级别的交换规则时,P’中的Tl(p)和P中的Tl(p)相等且P’中Tr(p)和P中的Tr(p)相等,或者P’中的Tl(p)和P中的Tr(p)相等且P’中的Tr(p)和P中的Tl(p)相等;
对于P’中每个连接操作ob’上的每个连接谓词p,p满足p在P中的约束条件。
可选地,在本发明一个实施例中,该查询模块1780具体用于:
从该等价查询计划集合中选择代价最小的查询计划进行查询。
根据本发明实施例的数据查询的装置1700可对应于根据本发明实施例的数据查询的方法的执行主体,并且装置1700中的各个模块的上述和其它操作和/或功能分别为了实现前述各个方法的相应流程,为了简洁,在此不再赘述。
图18示出了根据本发明实施例的数据库系统1800的示意性框图。如图18所示,该数据库系统1800包括前述本发明实施例的数据查询的装置1700和数据库1810。该数据库系统1800可以执行前述本发明实施例的数据查询的方法,在数据库1810中进行查询。
图19示出了本发明的又一实施例提供的数据查询的装置的结构,包括至少一个处理器1902(例如CPU),至少一个网络接口1905或者其他通信接口,存储器1906,和至少一个通信总线1903,用于实现这些装置之间的连接通信。处理器1902用于执行存储器1906中存储的可执行模块,例如计算机程序。存储器1906可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个网络接口1905(可以是有线或者无线)实现与至少一个其他网元之间的通信连接。
在一些实施方式中,存储器1906存储了程序19061,处理器1902执行程序19061,用于执行前述本发明实施例的数据查询的方法。
应理解,在本发明实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各 示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM, Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (20)

  1. 一种数据查询的方法,其特征在于,由数据库系统执行,所述数据库系统运行在计算机设备上,所述方法包括:
    接收数据查询请求;
    根据所述数据查询请求,生成原始查询计划;
    重组所述原始查询计划中的连接谓词;
    确定所述原始查询计划的重组后的连接谓词的基本信息;
    基于连接操作规则,确定所述原始查询计划的重组后的连接谓词的约束条件;
    根据所述原始查询计划的重组后的连接谓词的基本信息和所述原始查询计划的重组后的连接谓词的约束条件,确定所述原始查询计划的等价查询计划;
    根据所述原始查询计划的等价查询计划进行查询。
  2. 根据权利要求1所述的方法,其特征在于,所述根据所述原始查询计划的重组后的连接谓词的基本信息和所述原始查询计划的重组后的连接谓词的约束条件,确定所述原始查询计划的等价查询计划,包括:
    根据所述原始查询计划的重组后的连接谓词的基本信息和所述原始查询计划的重组后的连接谓词的约束条件,确定所述原始查询计划的等价查询计划集合;
    所述根据所述原始查询计划的等价查询计划进行查询,包括:
    从所述等价查询计划集合中选择查询计划进行查询。
  3. 根据权利要求2所述的方法,其特征在于,所述方法还包括:
    根据所述原始查询计划,获取候选查询计划集合;
    所述根据所述原始查询计划的重组后的连接谓词的基本信息和所述原始查询计划的重组后的连接谓词的约束条件,确定所述原始查询计划的等价查询计划集合,包括:
    根据所述原始查询计划的重组后的连接谓词的基本信息和所述原始查询计划的重组后的连接谓词的约束条件,在所述候选查询计划集合中确定所述等价查询计划集合。
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述重组所述原始查询计划中的连接谓词,包括:
    对于所述原始查询计划中的内连接操作,将所述内连接操作的所有连接谓词转化成合取范式并合并具有相同输入表的连接谓词;
    对于所述原始查询计划中的非内连接操作,将所述非内连接操作的所有连接谓词合并成一个连接谓词。
  5. 根据权利要求1至4中任一项所述的方法,其特征在于,所述连接谓词的基本信息包括所述连接谓词的输入表,所述连接谓词所在连接操作的左子树中包括的所述连接谓词的输入表,所述连接谓词所在连接操作的右子树中包括的所述连接谓词的输入表和所述连接谓词所在连接操作的连接类型。
  6. 根据权利要求1至5中任一项所述的方法,其特征在于,所述连接操作规则包括操作级别的规则和谓词级别的规则,其中,所述操作级别的规则包括操作级别的交换规则e1oa p12e2=e2oa p12e1、操作级别的结合规则(e1oa p12e2)ob p23e3=e1oa p12(e2ob p23e3)、操作级别的左置换规则(e1oa p12e2)ob p13e3=(e1ob p13e3)oa p12e2和操作级别的右置换规则e1oa p13(e2ob p23e3)=e2ob p23(e1oa p13e3),所述谓词级别的规则包括谓词级别的结合规则(e1oa p12e2)ob p∧p23e3=e1oa p12∧p(e2ob p23e3)、谓词级别的左置换规则(e1oa p12e2)ob p13∧pe3=(e1ob p13e3)oa p12∧pe2和谓词级别的右置换规则e1oa p∧p13(e2ob p23e3)=e2ob p∧p23(e1oa p13e3),其中,ei为查询表达式,oa,ob为连接操作,pij为ei和ej之间的连接谓词。
  7. 根据权利要求6所述的方法,其特征在于,所述基于连接操作规则,确定所述原始查询计划的重组后的连接谓词的约束条件,包括:
    对于所述原始查询计划中的每个连接操作节点oB,遍历以oB为根节点的子树中的每一个连接操作节点oA
    oA在以oB为根节点的子树的左子树中时,若oA和oB不满足操作级别的结合规则和谓词级别的结合规则,则为oB上的重组后的每个连接谓词添加第一约束条件,若oA和oB不满足操作级别的左置换规则和谓词级别的左置换规则,则为oB上的重组后的每个连接谓词添加第二约束条件;
    oA在以oB为根节点的子树的右子树中时,若oA和oB不满足操作级别的结合规则和谓词级别的结合规则,则为oB上的重组后的每个连接谓词添加第二约束条件,若oA和oB不满足操作级别的右置换规则和谓词级别的右置换规则,则为oB上的重组后的每个连接谓词添加第一约束条件;
    所述第一约束条件为T(e2)->T(e1)∩T(pa1∧pa2∧…∧pan),所述第二约束 条件为T(e1)->T(e2)∩T(pa1∧pa2∧…∧pan),T(e1)表示以oA为根节点的子树的左子树e1包括的原始输入表,T(e2)表示以oA为根节点的子树的右子树e2包括的原始输入表,T(pa1∧pa2∧…∧pan)表示oA上的重组后的连接谓词pa1∧pa2∧…∧pan中包括的原始输入表,T1->T2表示若以T1->T2所约束的连接谓词所在的连接操作为根节点的第一子树包括T1中的任意一个输入表,则所述第一子树包括T2中的所有输入表。
  8. 根据权利要求1至7中任一项所述的方法,其特征在于,所述根据所述原始查询计划的重组后的连接谓词的基本信息和所述原始查询计划的重组后的连接谓词的约束条件,确定所述原始查询计划的等价查询计划,包括:
    若第一候选查询计划P’满足以下条件,则确定P’为所述原始查询计划P的等价查询计划:
    P’的每个第一连接操作的连接类型是内连接,所述第一连接操作为具有两个以上重组后的连接谓词的连接操作,且所述两个以上重组后的连接谓词中的每个连接谓词在P中所对应的连接操作的连接类型是内连接;
    对于P’中每个连接操作ob’上的每个连接谓词p,
    在ob’不满足操作级别的交换规则时,P’中的Tl(p)和P中的Tl(p)相等且P’中的Tr(p)和P中的Tr(p)相等,其中,Tl(p)表示p所在连接操作的左子树中包括的p的输入表,Tr(p)表示p所在连接操作的右子树中包括的p的输入表,
    在ob’满足操作级别的交换规则时,P’中的Tl(p)和P中的Tl(p)相等且P’中Tr(p)和P中的Tr(p)相等,或者P’中的Tl(p)和P中的Tr(p)相等且P’中的Tr(p)和P中的Tl(p)相等;
    对于P’中每个连接操作ob’上的每个连接谓词p,p满足p在P中的约束条件。
  9. 根据权利要求2所述的方法,其特征在于,所述从所述等价查询计划集合中选择查询计划进行查询,包括:
    从所述等价查询计划集合中选择代价最小的查询计划进行查询。
  10. 一种数据查询的装置,其特征在于,包括:
    接收模块,用于接收数据查询请求;
    生成模块,用于根据所述数据查询请求,生成原始查询计划;
    重组模块,用于重组所述原始查询计划中的连接谓词;
    确定模块,用于确定所述原始查询计划的重组后的连接谓词的基本信息;基于连接操作规则,确定所述原始查询计划的重组后的连接谓词的约束条件;以及根据所述原始查询计划的重组后的连接谓词的基本信息和所述原始查询计划的重组后的连接谓词的约束条件,确定所述原始查询计划的等价查询计划;
    查询模块,用于根据所述原始查询计划的等价查询计划进行查询。
  11. 根据权利要求10所述的装置,其特征在于,所述确定模块具体用于,根据所述原始查询计划的重组后的连接谓词的基本信息和所述原始查询计划的重组后的连接谓词的约束条件,确定所述原始查询计划的等价查询计划集合;
    所述查询模块具体用于,从所述等价查询计划集合中选择查询计划进行查询。
  12. 根据权利要求11所述的装置,其特征在于,所述装置还包括:
    获取模块,用于根据所述原始查询计划,获取候选查询计划集合;
    所述确定模块具体用于,根据所述原始查询计划的重组后的连接谓词的基本信息和所述原始查询计划的重组后的连接谓词的约束条件,在所述候选查询计划集合中确定所述等价查询计划集合。
  13. 根据权利要求10至12中任一项所述的装置,其特征在于,所述重组模块具体用于:
    对于所述原始查询计划中的内连接操作,将所述内连接操作的所有连接谓词转化成合取范式并合并具有相同输入表的连接谓词;
    对于所述原始查询计划中的非内连接操作,将所述非内连接操作的所有连接谓词合并成一个连接谓词。
  14. 根据权利要求10至13中任一项所述的装置,其特征在于,所述连接谓词的基本信息包括所述连接谓词的输入表,所述连接谓词所在连接操作的左子树中包括的所述连接谓词的输入表,所述连接谓词所在连接操作的右子树中包括的所述连接谓词的输入表和所述连接谓词所在连接操作的连接类型。
  15. 根据权利要求10至14中任一项所述的装置,其特征在于,所述连接操作规则包括操作级别的规则和谓词级别的规则,其中,所述操作级别的 规则包括操作级别的交换规则e1oa p12e2=e2oa p12e1、操作级别的结合规则(e1oa p12e2)ob p23e3=e1oa p12(e2ob p23e3)、操作级别的左置换规则(e1oa p12e2)ob p13e3=(e1ob p13e3)oa p12e2和操作级别的右置换规则e1oa p13(e2ob p23e3)=e2ob p23(e1oa p13e3),所述谓词级别的规则包括谓词级别的结合规则(e1oa p12e2)ob p∧p23e3=e1oa p12∧p(e2ob p23e3)、谓词级别的左置换规则(e1oa p12e2)ob p13∧pe3=(e1ob p13e3)oa p12∧pe2和谓词级别的右置换规则e1oa p∧p13(e2ob p23e3)=e2ob p∧p23(e1oa p13e3),其中,ei为查询表达式,oa,ob为连接操作,pij为ei和ej之间的连接谓词。
  16. 根据权利要求15所述的装置,其特征在于,所述确定模块具体用于:
    对于所述原始查询计划中的每个连接操作节点oB,遍历以oB为根节点的子树中的每一个连接操作节点oA
    oA在以oB为根节点的子树的左子树中时,若oA和oB不满足操作级别的结合规则和谓词级别的结合规则,则为oB上的重组后的每个连接谓词添加第一约束条件,若oA和oB不满足操作级别的左置换规则和谓词级别的左置换规则,则为oB上的重组后的每个连接谓词添加第二约束条件;
    oA在以oB为根节点的子树的右子树中时,若oA和oB不满足操作级别的结合规则和谓词级别的结合规则,则为oB上的重组后的每个连接谓词添加第二约束条件,若oA和oB不满足操作级别的右置换规则和谓词级别的右置换规则,则为oB上的重组后的每个连接谓词添加第一约束条件;
    所述第一约束条件为T(e2)->T(e1)∩T(pa1∧pa2∧…∧pan),所述第二约束条件为T(e1)->T(e2)∩T(pa1∧pa2∧…∧pan),T(e1)表示以oA为根节点的子树的左子树e1包括的原始输入表,T(e2)表示以oA为根节点的子树的右子树e2包括的原始输入表,T(pa1∧pa2∧…∧pan)表示oA上的重组后的连接谓词pa1∧pa2∧…∧pan中包括的原始输入表,T1->T2表示若以T1->T2所约束的连接谓词所在的连接操作为根节点的第一子树包括T1中的任意一个输入表,则所述第一子树包括T2中的所有输入表。
  17. 根据权利要求10至16中任一项所述的装置,其特征在于,所述确定模块具体用于:
    若第一候选查询计划P’满足以下条件,则确定P’为所述原始查询计划P的等价查询计划:
    P’的每个第一连接操作的连接类型是内连接,所述第一连接操作为具有 两个以上重组后的连接谓词的连接操作,且所述两个以上重组后的连接谓词中的每个连接谓词在P中所对应的连接操作的连接类型是内连接;
    对于P’中每个连接操作ob’上的每个连接谓词p,
    在ob’不满足操作级别的交换规则时,P’中的Tl(p)和P中的Tl(p)相等且P’中的Tr(p)和P中的Tr(p)相等,其中,Tl(p)表示p所在连接操作的左子树中包括的p的输入表,Tr(p)表示p所在连接操作的右子树中包括的p的输入表,
    在ob’满足操作级别的交换规则时,P’中的Tl(p)和P中的Tl(p)相等且P’中Tr(p)和P中的Tr(p)相等,或者P’中的Tl(p)和P中的Tr(p)相等且P’中的Tr(p)和P中的Tl(p)相等;
    对于P’中每个连接操作ob’上的每个连接谓词p,p满足p在P中的约束条件。
  18. 根据权利要求11所述的装置,其特征在于,所述查询模块具体用于:
    从所述等价查询计划集合中选择代价最小的查询计划进行查询。
  19. 一种数据查询的装置,其特征在于,所述装置包括处理器和存储器,其中,所述存储器用于存储指令,所述处理器用于执行所述指令,所述指令在被所述处理器执行时,使所述处理器执行根据权利要求1至9中任一项所述的方法。
  20. 一种数据库系统,其特征在于,包括根据权利要求10至18中任一项所述的数据查询的装置和数据库。
PCT/CN2015/095909 2015-11-30 2015-11-30 数据查询的方法、装置和数据库系统 WO2017091925A1 (zh)

Priority Applications (8)

Application Number Priority Date Filing Date Title
PCT/CN2015/095909 WO2017091925A1 (zh) 2015-11-30 2015-11-30 数据查询的方法、装置和数据库系统
BR112018010857-0A BR112018010857B1 (pt) 2015-11-30 2015-11-30 Método e aparelho de consulta de dados, e sistema de banco de dados
EP15909443.2A EP3373154A4 (en) 2015-11-30 2015-11-30 Data query method and apparatus, and database system
JP2018527925A JP6628455B2 (ja) 2015-11-30 2015-11-30 データ照会方法および装置ならびにデータベースシステム
SG11201804544QA SG11201804544QA (en) 2015-11-30 2015-11-30 Data query method and apparatus, and database system
KR1020187017354A KR102138627B1 (ko) 2015-11-30 2015-11-30 데이터 쿼리 방법 및 장치, 및 데이터베이스 시스템
CN201580005935.1A CN107251013B (zh) 2015-11-30 2015-11-30 数据查询的方法、装置和数据库系统
US15/992,925 US10885034B2 (en) 2015-11-30 2018-05-30 Data query method and apparatus, and database system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/095909 WO2017091925A1 (zh) 2015-11-30 2015-11-30 数据查询的方法、装置和数据库系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/992,925 Continuation US10885034B2 (en) 2015-11-30 2018-05-30 Data query method and apparatus, and database system

Publications (1)

Publication Number Publication Date
WO2017091925A1 true WO2017091925A1 (zh) 2017-06-08

Family

ID=58796008

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/095909 WO2017091925A1 (zh) 2015-11-30 2015-11-30 数据查询的方法、装置和数据库系统

Country Status (8)

Country Link
US (1) US10885034B2 (zh)
EP (1) EP3373154A4 (zh)
JP (1) JP6628455B2 (zh)
KR (1) KR102138627B1 (zh)
CN (1) CN107251013B (zh)
BR (1) BR112018010857B1 (zh)
SG (1) SG11201804544QA (zh)
WO (1) WO2017091925A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104426A (zh) * 2019-11-22 2020-05-05 深圳智链物联科技有限公司 一种数据查询方法及系统

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6707797B2 (ja) * 2017-03-29 2020-06-10 株式会社日立製作所 データベース管理システム及びデータベース管理方法
CN108664516A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 查询优化方法及相关装置
US10885035B2 (en) * 2019-04-26 2021-01-05 Advanced New Technologies Co., Ltd. Method and system for outer join of database tables
CN111949686B (zh) * 2019-05-14 2024-05-14 阿里巴巴集团控股有限公司 一种数据处理方法、装置及设备
US20200409948A1 (en) * 2019-06-26 2020-12-31 International Business Machines Corporation Adaptive Query Optimization Using Machine Learning
CN111151858B (zh) * 2020-01-13 2021-10-15 吉利汽车研究院(宁波)有限公司 一种点焊焊接参数应用系统及设置方法
KR102125010B1 (ko) * 2020-03-17 2020-06-19 김명훈 데이터베이스 전환 분석 시스템 및 방법
CN114168620B (zh) * 2022-02-11 2022-05-17 北京奥星贝斯科技有限公司 执行计划的处理方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080133461A1 (en) * 2006-11-30 2008-06-05 Ianywhere Solutions, Inc. Optimization of left and right outer join operations in database management systems
CN103678589A (zh) * 2013-12-12 2014-03-26 用友软件股份有限公司 一种基于等价类的数据库内核查询优化方法
CN103714058A (zh) * 2012-09-28 2014-04-09 Sap股份公司 数据库查询的优化
CN104216891A (zh) * 2013-05-30 2014-12-17 国际商业机器公司 关系型数据库中的查询语句的优化方法和设备
CN104285222A (zh) * 2012-05-07 2015-01-14 国际商业机器公司 使用谓词映射器优化查询
US20150324383A1 (en) * 2014-05-06 2015-11-12 International Business Machines Corporation Optimizing relational database queries with multi-table predicate expressions

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5819255A (en) 1996-08-23 1998-10-06 Tandem Computers, Inc. System and method for database query optimization
JP4552242B2 (ja) * 1999-10-06 2010-09-29 株式会社日立製作所 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法
JP3515050B2 (ja) * 2000-07-07 2004-04-05 三菱電機株式会社 データベース演算処理装置
US6665663B2 (en) 2001-03-15 2003-12-16 International Business Machines Corporation Outerjoin and antijoin reordering using extended eligibility lists
US6598044B1 (en) * 2002-06-25 2003-07-22 Microsoft Corporation Method for choosing optimal query execution plan for multiple defined equivalent query expressions
US7617179B2 (en) * 2002-06-29 2009-11-10 Ianywhere Solutions, Inc. System and methodology for cost-based subquery optimization using a left-deep tree join enumeration algorithm
US8086598B1 (en) * 2006-08-02 2011-12-27 Hewlett-Packard Development Company, L.P. Query optimizer with schema conversion
CN101339551B (zh) 2007-07-05 2013-01-30 日电(中国)有限公司 自然语言查询需求扩展设备及其方法
US8224806B2 (en) 2009-07-31 2012-07-17 Hewlett-Packard Development Company, L.P. Selectivity-based optimized-query-plan caching
US8589382B2 (en) * 2011-12-29 2013-11-19 International Business Machines Corporation Multi-fact query processing in data processing system
US10133778B2 (en) * 2015-11-20 2018-11-20 Sap Se Query optimization using join cardinality

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080133461A1 (en) * 2006-11-30 2008-06-05 Ianywhere Solutions, Inc. Optimization of left and right outer join operations in database management systems
CN104285222A (zh) * 2012-05-07 2015-01-14 国际商业机器公司 使用谓词映射器优化查询
CN103714058A (zh) * 2012-09-28 2014-04-09 Sap股份公司 数据库查询的优化
CN104216891A (zh) * 2013-05-30 2014-12-17 国际商业机器公司 关系型数据库中的查询语句的优化方法和设备
CN103678589A (zh) * 2013-12-12 2014-03-26 用友软件股份有限公司 一种基于等价类的数据库内核查询优化方法
US20150324383A1 (en) * 2014-05-06 2015-11-12 International Business Machines Corporation Optimizing relational database queries with multi-table predicate expressions

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3373154A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111104426A (zh) * 2019-11-22 2020-05-05 深圳智链物联科技有限公司 一种数据查询方法及系统
CN111104426B (zh) * 2019-11-22 2024-04-05 深圳智链物联科技有限公司 一种数据查询方法及系统
CN111104426B8 (zh) * 2019-11-22 2024-04-23 北京傲速科技有限公司 一种数据查询方法及系统

Also Published As

Publication number Publication date
CN107251013B (zh) 2020-02-14
EP3373154A1 (en) 2018-09-12
BR112018010857B1 (pt) 2023-02-07
US20180276277A1 (en) 2018-09-27
JP2019504390A (ja) 2019-02-14
SG11201804544QA (en) 2018-06-28
BR112018010857A2 (zh) 2018-11-21
BR112018010857A8 (pt) 2022-11-29
JP6628455B2 (ja) 2020-01-08
KR102138627B1 (ko) 2020-07-28
KR20180083927A (ko) 2018-07-23
CN107251013A (zh) 2017-10-13
EP3373154A4 (en) 2018-09-12
US10885034B2 (en) 2021-01-05

Similar Documents

Publication Publication Date Title
WO2017091925A1 (zh) 数据查询的方法、装置和数据库系统
CN106227800B (zh) 一种高度关联大数据的存储方法及管理系统
US11068439B2 (en) Unsupervised method for enriching RDF data sources from denormalized data
Simitsis et al. Optimizing ETL processes in data warehouses
US9514188B2 (en) Integrating map-reduce into a distributed relational database
US8943059B2 (en) Systems and methods for merging source records in accordance with survivorship rules
US9317544B2 (en) Integrated fuzzy joins in database management systems
US20150278268A1 (en) Data encoding and corresponding data structure
US20130346429A1 (en) Systems and Methods for Analyzing Existing Data Models
US8244760B2 (en) Segmentation and profiling of users
US10831737B2 (en) Method and device for partitioning association table in distributed database
US7539663B2 (en) Mapping composition using algebraic operators
CN110019314B (zh) 基于数据项分析的动态数据封装方法、客户端和服务端
CN108431766B (zh) 用于访问数据库的方法和系统
US20210019317A1 (en) Predictive query improvement
US9619458B2 (en) System and method for phrase matching with arbitrary text
US8150855B2 (en) Performing an efficient implicit join of multiple mixed-type records
JP5981382B2 (ja) 部分木併合装置、部分木併合方法および部分木併合プログラム
US11138174B2 (en) Electronic database and method for forming same
DeBrie The dynamodb book
Simitsis et al. Logical optimization of ETL workflows
US11803545B1 (en) Runtime statistics feedback for query plan cost estimation
US11822531B2 (en) Method and system for using auxiliary tables for RDF data stored in a relational database
Pandit et al. Accelerating big data analytics with collaborative planning in Teradata Aster 6
KR101757251B1 (ko) 집계질의를 처리하기 위한 장치 및 그 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15909443

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2018527925

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 11201804544Q

Country of ref document: SG

REG Reference to national code

Ref country code: BR

Ref legal event code: B01A

Ref document number: 112018010857

Country of ref document: BR

WWE Wipo information: entry into national phase

Ref document number: 2015909443

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20187017354

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 1020187017354

Country of ref document: KR

ENP Entry into the national phase

Ref document number: 112018010857

Country of ref document: BR

Kind code of ref document: A2

Effective date: 20180528