CN114461677A - 一种基于选择度传递调整连接顺序的方法 - Google Patents

一种基于选择度传递调整连接顺序的方法 Download PDF

Info

Publication number
CN114461677A
CN114461677A CN202210376545.7A CN202210376545A CN114461677A CN 114461677 A CN114461677 A CN 114461677A CN 202210376545 A CN202210376545 A CN 202210376545A CN 114461677 A CN114461677 A CN 114461677A
Authority
CN
China
Prior art keywords
data table
logic
cost
transmission
plan tree
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
Application number
CN202210376545.7A
Other languages
English (en)
Other versions
CN114461677B (zh
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.)
Tianjin Nankai University General Data Technologies Co ltd
Original Assignee
Tianjin Nankai University General Data Technologies 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 Tianjin Nankai University General Data Technologies Co ltd filed Critical Tianjin Nankai University General Data Technologies Co ltd
Priority to CN202210376545.7A priority Critical patent/CN114461677B/zh
Publication of CN114461677A publication Critical patent/CN114461677A/zh
Application granted granted Critical
Publication of CN114461677B publication Critical patent/CN114461677B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • 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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2462Approximate or statistical queries
    • 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/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种基于选择度传递调整连接顺序的方法,首先将优化器代价计算分为逻辑代价计算和物理代价计算,逻辑代价计算用于估计查询中各算子的输出行数,物理代价计算在行数基础上综合考虑编码复杂度,CPU消耗,磁盘消耗,网络消耗等信息,比逻辑代价计算更加接近实际执行过程。其次,在连接的逻辑代价估计中利用选择度传递调整逻辑计划树中所有的数据表的逻辑代价,通过减小连接运算过程中的中间结果来评估并调整连接顺序,选择更加高效的查询计划。本发明所述的一种基于选择度传递调整连接顺序的方法,有利于简化计算流程,优化连接顺序,减少备选方案及其搜索时间,增加工作效率。

Description

一种基于选择度传递调整连接顺序的方法
技术领域
本发明属于分布式数据库下的多表连接查询领域,尤其是涉及一种基于选择度传递调整连接顺序的方法。
背景技术
多表连接的查询问题是数据库查询的核心问题,当一条结构化查询语句涉及多个表时,需要对表进行连接查询,不同的连接顺序对于查询语句的执行性能影响巨大。随着数据量的增加,多数据中心,多服务器的分布式数据库架构进一步提升了连接顺序对查询语句执行性能的影响。
在某些特定的连接条件下,查询语句的执行可以通过所谓的谓词下推提升执行效率,如以下例子所示:
假设表t1包含a,b两列,记为t1(a,b), 同理,有t2(a,b)
考虑以下查询语句
select t1.a, t1.b, t2.a, t2.b from t1, t2 where t1.a<10 and t1.a=t2.a;
由于t1表中的过滤条件列与连接条件列相同(均为t1.a), 同时连接条件为等值条件(t1.a=t2.a),因此t1表中的过滤条件(t1.a<10)可以通过谓词下推技术传递给t2,形成t2表中的过滤条件(t2.a<10),因此,上述语句可改写为
select t1.a, t1.b, t2.a, t2.b from t1, t2 where t1.a<10 and t1.a=t2.aand t2.a<10;
在某些条件下,谓词下推技术的使用会受到阻碍,考虑以下查询语句
Select t1.a, t1.b, t2.a, t2.b from t1, t2 where t1.b<10 and t1.a=t2.a;
由于t1表中的过滤条件列(t1.b)与连接条件列(t1.a)不同,谓词下推技术无法使用。
在大多数查询场景下, t1表中的过滤条件(t1.b<10)减小了t1表的输出行数,即t1.a列的输出行数,如果我们能对t1.a列中减小的数据信息通过谓词下推技术过滤t2表的数据,将提升查询的执行性能。
布隆过滤器是对数据的高度抽象,具有占用空间小,适合移动等优点,因此,我们可以通过布隆过滤器将t1.a列中减小的数据信息抽象化后,传递给t2表,以完成对t2表的过滤。
在多表连接场景下,数据连接顺序会对连接性能产生巨大的影响。
比如 (t1 join t2) join t3 和t1 join (t2 join t3)会产生不同的中间结果,从而影响数据性能。随着连接表数量的增加,中间结果呈指数增加,直接执行连接查询的时间会变得不可忍受。查询优化器是数据库的“大脑”,它通过预存在数据库中的统计信息“模拟”执行查询语句,预估不同连接顺序的查询代价,找出最优的查询计划交给执行器执行。相对于执行器的执行时间来说,优化器的优化时间通常较短,因此,一个经过优化的执行计划可以提高执行器的执行效率。
发明内容
有鉴于此,本发明旨在提出一种基于选择度传递调整连接顺序的方法,通过优化过程中的选择度传递模拟执行过程中的布隆过滤器传递,以解决多连接表进行数据查询效率低的问题,表的连接顺序不同,查询效率也不同,需要对表的顺序进行优化排序。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于选择度传递调整连接顺序的方法,具体步骤如下:
S1、解析接收到的带连接查询的语句,构造所有查询项组合产生的查询树;
S2、基于查询树,产生等价的逻辑计划树集合,判断每个逻辑计划树中的连接是否满足基于选择度传递的顺序调整条件,若满足则继续执行,若不满足,则进入通用的优化流程;
S3、获取每个逻辑计划树中待连接的多个数据表的统计信息,根据每个数据表的统计信息计算每个数据表对应的输出行数,即获得每个数据表的逻辑代价;
S4、获取每个逻辑计划树中待连接的所有数据表的排列顺序,根据排列顺序,基于选择度传递调整该逻辑计划树中所有的数据表的逻辑代价,并进一步计算逻辑计划树中各算子的逻辑代价,通过计算该逻辑计划树所有算子的逻辑代价之和即获得该逻辑计划树的逻辑代价;
S5、获得算子输出总行数最少的M个逻辑计划树,参与物理代价计算,M为人为给定经验值;
S6、进行物理代价计算,根据数据表连接方式不同,将每个逻辑计划树转换成多个物理计划树;
S7、计算每个物理计划树中各算子执行代价之和,获得物理代价,选择执行物理代价最小的物理计划树为最优计划。
进一步的,步骤S2中,基于选择度传递的顺序调整条件为,数据表之间为内连接或可转换为内连接,数据表连接之间存在等值条件,确保能够进行选择度传递,方便执行器进行布隆过滤器下推。
进一步的,步骤S4中,根据排列顺序,基于选择度传递调整该逻辑计划树中所有的数据表的逻辑代价,并进一步计算逻辑计划树中各算子的逻辑代价,通过计算该逻辑计划树所有算子的逻辑代价之和即获得该逻辑计划树的逻辑代价,具体方法:
根据排列顺序从第一个数据表开始,对第一个数据表和第二个数据表进行选择度传递计算,确认第一个数据表和第二个数据表选择度传递顺序,并计算第一个数据表及第二个数据表的逻辑代价,获得第一个数据表和第二个数据表按照选择度传递顺序过滤形成的第一组传递结果表,将第一组传递结果表与第三个数据表进行选择度传递计算,确认第一组传递结果表和第三个数据表选择度传递顺序,并计算第一组传递结果表及第三个数据表的逻辑代价,获得第一组传递结果表和第三个数据表按照选择度传递顺序过滤形成的第二组传递结果表,以此类推,直到该逻辑计划树中所有数据表均计算完成,获得该逻辑计划树的算子输出总行数即获得该逻辑计划树的逻辑代价。
进一步的,对第一个数据表和第二个数据表进行选择度传递计算,确认第一个数据表和第二个数据表选择度传递顺序,并计算第一个数据表及第二个数据表的逻辑代价,具体方法:
S41、依据统计信息,分别计算第一个数据表的行数Rt1和第二个数据表的行数Rt2;
S42、确定第一个数据表t1和第二个数据表t2的等值条件a条件,t1a=t2a,依据统计信息计算第一个数据表a条件的列的不同值个数,记为Dt1a,同理,计算第二个数据表a条件的列的不同值个数, 记为Dt2a;
S43、若Dt1a/Dt2a<threshold,待传递的选择度为Dt1a/Dt2a,即过滤传递顺序是从第一个数据表建立布隆过滤器传递给第二个数据表进行过滤获得第一组传递结果表,其中,Threshold 为选择度阈值,通过人为经验设定。
S43、第二个数据表参与过滤连接计算的算子行数即逻辑代价的计算公式调整为Rt2*Dt1a/Dt2a;
步骤S4中,其他表的选择度传递计算方法与第一数据表和第二数据表的选择度传递的计算方法相同。
进一步的,步骤S6中,连接方式包括hash连接、nest-loop连接、merge连接。
进一步的,步骤S7中,算子执行代价计算公式:
算子执行代价=启动代价+算子输出行数*行宽*每行计算代价;
启动代价:经验值,依据设备信息和代码复杂度确定;
行宽:该算子所在数据表中需要计算的列的宽度之和,用字节来表示;
算子输出行数:该算子所在的物理计划树对应的逻辑计划树的算子输出行数;
每行计算代价:经验值,依据设备信息以及执行器代码计算复杂度确定。
进一步的,所述设备信息为影响查询性能的硬件信息,包括磁盘、CPU、内存、网络等。
相对于现有技术,本发明所述的一种基于选择度传递调整连接顺序的方法具有以下有益效果:
(1)本发明所述的一种基于选择度传递调整连接顺序的方法,将优化器代价计算分为逻辑代价计算和物理代价计算,其中,逻辑代价计算过程用于估计算子的输出行数,物理代价计算在行数基础上加入代码复杂度,CPU消耗,磁盘消耗,网络消耗等信息,比逻辑代价计算更加接近实际执行过程。由于优化器的计算过程复杂,备选方案繁多,将其分为两部分有利于简化计算流程,减少备选方案及其搜索时间,增加工作效率。
(2)本发明所述的一种基于选择度传递调整连接顺序的方法,基于选择度传递的代价计算方法,用于优化执行器有布隆优化器时的逻辑计划,减小优化复杂度,选择度传递在代价估计中的作用在于,减小逻辑代价估算的输出数据量,从而减小物理代价估算的输出数据量。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的逻辑代价计算示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”等的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以通过具体情况理解上述术语在本发明中的具体含义。
下面将参考附图并结合实施例来详细说明本发明。
如图1所示,一种基于选择度传递调整连接顺序的方法具体步骤如下:
S1、解析接收到的带连接查询的语句,构造所有查询项组合产生的查询树;
S2、基于查询树,产生等价的逻辑计划树集合,判断每个逻辑计划树中的连接是否满足基于选择度传递的顺序调整条件,若满足则继续执行,若不满足,则进入通用的优化流程;
S3、获取每个逻辑计划树中待连接的多个数据表的统计信息,根据每个数据表的统计信息计算每个数据表对应的输出行数,即获得每个数据表的逻辑代价;
S4、获取每个逻辑计划树中待连接的所有数据表的排列顺序,根据排列顺序,基于选择度传递调整该逻辑计划树中所有的数据表的逻辑代价,并进一步计算逻辑计划树中各算子的逻辑代价,通过计算该逻辑计划树所有算子的逻辑代价之和即获得该逻辑计划树的逻辑代价;
S5、获得算子输出总行数最少的M个逻辑计划树,参与物理代价计算,M为人为给定经验值;
S6、进行物理代价计算,根据数据表连接方式不同,将每个逻辑计划树转换成多个物理计划树;
S7、计算每个物理计划树中各算子执行代价之和,获得物理代价,选择执行物理代价最小的物理计划树为最优计划。
统计信息主要包括,该表总行数,列最大最小值,不同值个数(NDV),最常用值和常用值个数(MCV),直方图(Histogram),空值率(NR)等等,这些统计信息都是常用统计信息。
步骤S3,根据每个数据表的统计信息计算每个数据表对应的输出行数,具体实施方式举例:
如表t1过滤条件为a<10, 如果只有一个过滤条件,从统计信息中获得该列最小值为1,最大值为100,总行数为10000,则
选择度St1a= (10-1)/(100-1)=0.1
输出行数= 选择度St1a* 总行数= 0.1*10000=1000
其他过滤条件的估计过程类似,先计算选择度,再计算输出行数,都是通用的估计过程。
如图1所示,步骤S2中,基于选择度传递的顺序调整条件为,数据表之间为内连接或可转换为内连接,数据表连接之间存在等值条件,确保能够进行选择度传递,方便执行器进行布隆过滤器下推。
如图1所示,步骤S4中,根据排列顺序,基于选择度传递调整该逻辑计划树中所有的数据表的逻辑代价,并进一步计算逻辑计划树中各算子的逻辑代价,通过计算该逻辑计划树所有算子的逻辑代价之和即获得该逻辑计划树的逻辑代价,具体方法:
根据排列顺序从第一个数据表开始,对第一个数据表和第二个数据表进行选择度传递计算,确认第一个数据表和第二个数据表选择度传递顺序,并计算第一个数据表及第二个数据表的逻辑代价,获得第一个数据表和第二个数据表按照选择度传递顺序过滤形成的第一组传递结果表,将第一组传递结果表与第三个数据表进行选择度传递计算,确认第一组传递结果表和第三个数据表选择度传递顺序,并计算第一组传递结果表及第三个数据表的逻辑代价,获得第一组传递结果表和第三个数据表按照选择度传递顺序过滤形成的第二组传递结果表,以此类推,直到该逻辑计划树中所有数据表均计算完成,获得该逻辑计划树的算子输出总行数即获得该逻辑计划树的逻辑代价。
对第一个数据表和第二个数据表进行选择度传递计算,确认第一个数据表和第二个数据表选择度传递顺序,并计算第一个数据表及第二个数据表的逻辑代价,具体方法:
S41、依据统计信息,分别计算第一个数据表的行数Rt1和第二个数据表的行数Rt2;
S42、确定第一个数据表t1和第二个数据表t2的等值条件a条件,t1a=t2a,依据统计信息计算第一个数据表a条件的列的不同值个数,记为Dt1a,同理,计算第二个数据表a条件的列的不同值个数, 记为Dt2a;
不同值个数计算具体实施例:
每列的不同值个数(NDV)通过统计信息获得,如果有过滤条件,则先计算选择度,然后计算输出的不同值个数,如果没有过滤条件,则从统计信息获得的NDV即为输出的不同值个数。
假设从统计信息中获得的t1a的不同值个数NDVt1a为3000
Dt1a=选择度St1a*从统计信息中获得的不同值个数NDVt1a = 0.1*3000=300。
S43、若Dt1a/Dt2a<threshold,待传递的选择度为Dt1a/Dt2a,即过滤传递顺序是从第一个数据表建立布隆过滤器传递给第二个数据表进行过滤获得第一组传递结果表,其中,Threshold 为选择度阈值,通过人为经验设定。
S43、第二个数据表参与过滤连接计算的算子行数即逻辑代价的计算公式为 Rt2*Dt1a/Dt2a;
步骤S4中,其他表的选择度传递计算方法与第一数据表和第二数据表的选择度传递的计算方法相同。
如图1所示,步骤S6中,连接方式包括hash连接、nest-loop连接、merge连接。
步骤S7中,算子执行代价计算公式:
算子执行代价=启动代价+算子输出行数*行宽*每行计算代价;
启动代价:经验值,依据设备信息和代码复杂度确定;
行宽:该算子所在数据表中需要计算的列的宽度之和,用字节来表示;
算子输出行数:该算子所在的物理计划树对应的逻辑计划树的算子输出行数;
每行计算代价:经验值,依据设备信息以及执行器代码计算复杂度确定。
所述设备信息为影响查询性能的硬件信息,包括磁盘、CPU、内存、网络。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种基于选择度传递调整连接顺序的方法,其特征在于:具体步骤如下:
S1、解析接收到的带连接查询的语句,构造所有查询项组合产生的查询树;
S2、基于查询树,产生等价的逻辑计划树集合,判断每个逻辑计划树中的连接是否满足基于选择度传递的顺序调整条件,若满足则继续执行,若不满足,则进入通用的优化流程;
S3、获取每个逻辑计划树中待连接的多个数据表的统计信息,根据每个数据表的统计信息计算每个数据表对应的输出行数,即获得每个数据表的逻辑代价;
S4、获取每个逻辑计划树中待连接的所有数据表的排列顺序,根据排列顺序,基于选择度传递调整该逻辑计划树中所有的数据表的逻辑代价,并进一步计算逻辑计划树中各算子的逻辑代价,通过计算该逻辑计划树所有算子的逻辑代价之和即获得该逻辑计划树的逻辑代价;
S5、获得算子输出总行数最少的M个逻辑计划树,参与物理代价计算,M为人为给定经验值;
S6、进行物理代价计算,根据数据表连接方式不同,将每个逻辑计划树转换成多个物理计划树;
S7、计算每个物理计划树中各算子执行代价之和,获得物理代价,选择执行物理代价最小的物理计划树为最优计划。
2.根据权利要求1所述的一种基于选择度传递调整连接顺序的方法,其特征在于:步骤S2中,基于选择度传递的顺序调整条件为,数据表之间为内连接或可转换为内连接,数据表连接之间存在等值条件,确保能够进行选择度传递,方便执行器进行布隆过滤器下推。
3.根据权利要求1所述的一种基于选择度传递调整连接顺序的方法,其特征在于,步骤S4中,根据排列顺序,基于选择度传递调整该逻辑计划树中所有的数据表的逻辑代价,并进一步计算逻辑计划树中各算子的逻辑代价,通过计算该逻辑计划树所有算子的逻辑代价之和即获得该逻辑计划树的逻辑代价,具体方法:
根据排列顺序从第一个数据表开始,对第一个数据表和第二个数据表进行选择度传递计算,确认第一个数据表和第二个数据表选择度传递顺序,并计算第一个数据表及第二个数据表的逻辑代价,获得第一个数据表和第二个数据表按照选择度传递顺序过滤形成的第一组传递结果表,将第一组传递结果表与第三个数据表进行选择度传递计算,确认第一组传递结果表和第三个数据表选择度传递顺序,并计算第一组传递结果表及第三个数据表的逻辑代价,获得第一组传递结果表和第三个数据表按照选择度传递顺序过滤形成的第二组传递结果表,以此类推,直到该逻辑计划树中所有数据表均计算完成,获得该逻辑计划树的算子输出总行数即获得该逻辑计划树的逻辑代价。
4.根据权利要求3所述的一种基于选择度传递调整连接顺序的方法,其特征在于:对第一个数据表和第二个数据表进行选择度传递计算,确认第一个数据表和第二个数据表选择度传递顺序,并计算第一个数据表及第二个数据表的逻辑代价,具体方法:
S41、依据统计信息,分别计算第一个数据表的行数Rt1和第二个数据表的行数Rt2;
S42、确定第一个数据表t1和第二个数据表t2的等值条件a条件,依据统计信息计算第一个数据表a条件的列的不同值个数,记为Dt1a,同理,计算第二个数据表a条件的列的不同值个数, 记为Dt2a;
S43、若Dt1a/Dt2a<threshold,待传递的选择度为Dt1a/Dt2a,即过滤传递顺序是从第一个数据表建立布隆过滤器传递给第二个数据表进行过滤获得第一组传递结果表,其中,Threshold 为选择度阈值,通过人为经验设定;
S43、第二个数据表参与过滤连接计算的算子行数即逻辑代价的计算公式调整为 Rt2*Dt1a/Dt2a;
步骤S4中,其他表的选择度传递计算方法与第一数据表和第二数据表的选择度传递的计算方法相同。
5.根据权利要求1所述的一种基于选择度传递调整连接顺序的方法,其特征在于:步骤S6中,连接方式包括hash连接、nest-loop连接、merge连接。
6.根据权利要求1所述的一种基于选择度传递调整连接顺序的方法,其特征在于:步骤S7中,算子执行代价计算公式:
算子执行代价=启动代价+算子输出行数*行宽*每行计算代价;
启动代价:经验值,依据设备信息和代码复杂度确定;
行宽:该算子所在数据表中需要计算的列的宽度之和,用字节来表示;
算子输出行数:该算子所在的物理计划树对应的逻辑计划树的算子输出行数;
每行计算代价:经验值,依据设备信息以及执行器代码计算复杂度确定。
7.根据权利要求6所述的一种基于选择度传递调整连接顺序的方法,其特征在于:所述设备信息为影响查询性能的硬件信息,包括磁盘、CPU、内存、网络。
CN202210376545.7A 2022-04-12 2022-04-12 一种基于选择度传递调整连接顺序的方法 Active CN114461677B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210376545.7A CN114461677B (zh) 2022-04-12 2022-04-12 一种基于选择度传递调整连接顺序的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210376545.7A CN114461677B (zh) 2022-04-12 2022-04-12 一种基于选择度传递调整连接顺序的方法

Publications (2)

Publication Number Publication Date
CN114461677A true CN114461677A (zh) 2022-05-10
CN114461677B CN114461677B (zh) 2022-07-26

Family

ID=81417932

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210376545.7A Active CN114461677B (zh) 2022-04-12 2022-04-12 一种基于选择度传递调整连接顺序的方法

Country Status (1)

Country Link
CN (1) CN114461677B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102609493A (zh) * 2012-01-20 2012-07-25 东华大学 一种基于列存储模型的连接顺序查询优化方法
CN103164495A (zh) * 2011-12-19 2013-06-19 中国人民解放军63928部队 一种基于周边搜索的半连接查询优化方法及其系统
CN103927346A (zh) * 2014-03-28 2014-07-16 浙江大学 基于数据量的查询连接方法
CN109308303A (zh) * 2018-09-19 2019-02-05 北京服装学院 一种基于马尔可夫链的多表连接在线聚集方法
CN110019341A (zh) * 2017-12-08 2019-07-16 杭州海康威视数字技术股份有限公司 一种数据查询方法及装置
CN110968895A (zh) * 2019-11-29 2020-04-07 北京百度网讯科技有限公司 一种数据的处理方法、装置、电子设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103164495A (zh) * 2011-12-19 2013-06-19 中国人民解放军63928部队 一种基于周边搜索的半连接查询优化方法及其系统
CN102609493A (zh) * 2012-01-20 2012-07-25 东华大学 一种基于列存储模型的连接顺序查询优化方法
CN103927346A (zh) * 2014-03-28 2014-07-16 浙江大学 基于数据量的查询连接方法
CN110019341A (zh) * 2017-12-08 2019-07-16 杭州海康威视数字技术股份有限公司 一种数据查询方法及装置
CN109308303A (zh) * 2018-09-19 2019-02-05 北京服装学院 一种基于马尔可夫链的多表连接在线聚集方法
CN110968895A (zh) * 2019-11-29 2020-04-07 北京百度网讯科技有限公司 一种数据的处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN114461677B (zh) 2022-07-26

Similar Documents

Publication Publication Date Title
US7805411B2 (en) Auto-tuning SQL statements
US8788660B2 (en) Query execution and optimization with autonomic error recovery from network failures in a parallel computer system with multiple networks
CN103176974B (zh) 优化数据库中访问路径的方法和装置
US8688819B2 (en) Query optimization in a parallel computer system with multiple networks
US8150836B2 (en) System, method, and computer-readable medium for reducing row redistribution costs for parallel join operations
US20060294129A1 (en) Aggregating data with complex operations
US20130232133A1 (en) Systems and methods for performing a nested join operation
US20060182046A1 (en) Parallel partition-wise aggregation
US8782219B2 (en) Automated discovery of template patterns based on received server requests
US20080263001A1 (en) System and method for automating data partitioning in a parallel database
US20180276277A1 (en) Data Query Method and Apparatus, and Database System
CN110109898B (zh) 基于fpga片内bram的哈希连接加速方法及系统
US20150278306A1 (en) Bloom filter costing estimation
CN111552509B (zh) 一种接口间依赖关系的确定方法及装置
CN104216891A (zh) 关系型数据库中的查询语句的优化方法和设备
US20140188924A1 (en) Techniques for ordering predicates in column partitioned databases for query optimization
CN108804473A (zh) 数据查询的方法、装置和数据库系统
CN110750560B (zh) 一种优化网络多连接的系统和方法
CN114461677B (zh) 一种基于选择度传递调整连接顺序的方法
US8930345B2 (en) Query optimization in a parallel computer system to reduce network traffic
CN110297858B (zh) 执行计划的优化方法、装置、计算机设备和存储介质
CN114969101B (zh) Sql语句的处理方法及装置
CN105589969A (zh) 一种数据处理方法及装置
CN117435594B (zh) 一种分布式数据库分布键的优选方法
CN117708169A (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