CN108182192A - 一种基于分布式数据库的半连接查询计划选择算法 - Google Patents
一种基于分布式数据库的半连接查询计划选择算法 Download PDFInfo
- Publication number
- CN108182192A CN108182192A CN201611138749.8A CN201611138749A CN108182192A CN 108182192 A CN108182192 A CN 108182192A CN 201611138749 A CN201611138749 A CN 201611138749A CN 108182192 A CN108182192 A CN 108182192A
- Authority
- CN
- China
- Prior art keywords
- inquiry
- connection
- website
- cost
- size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000000977 initiatory effect Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 23
- 238000000034 method Methods 0.000 abstract description 20
- 238000005457 optimization Methods 0.000 abstract description 10
- 230000035699 permeability Effects 0.000 abstract description 2
- 238000012545 processing Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 208000032369 Primary transmission Diseases 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000004044 response Effects 0.000 description 1
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
- G06F16/2456—Join operations
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
本发明的目的是提出一种基于查询地点不同的分布式半连接代价模型,以解决分布式连接的查询计划选择问题。利用该方法能在查询正式操作前,利用现有表大小,以及表属性及元组长度,套用代价模型,确定查询计划。提高分布式数据库系统的查询效率,采用新的代价模型在执行半连接计划之前评估和传输执行与优化代价。剔除与连接无关的数据,有效减少连接操作关系中的无用数据,选择执行代价更小的执行方法。首先对分布式数据库查询执行代价模型进行分析,然后对半连接中的连接运算方式、连接关系的传输方法和执行场地等问题进行研究,并计算其评估方法的执行代价,给出一种可行的查询计划选择算法,最终确定执行的场地、连接的方法和传输方法。
Description
技术领域
本发明涉及一种并行式连接算法中针对连接后数据规模的计算,属于计算机数据库中的代价模型领域。
背景技术
分布式数据库系统可以将物理位置分散而又需要不同粒度数据管理的多个集中式数据库系统组织起来,形成一个具有海量、分布式特征的数据库系统[1]。分布式数据库中操作代价较高的连接操作对系统查询效率直接产生影响。分布式数据库在体系结构上与集中式数据库系统差异显著,提供了一个新的服务平台,由此带来与集中式数据库系统不同的技术问题[2]。查询优化处理是其中关键性问题之一。在集中式数据库中,由于系统大多运行在单个处理器的计算机上,所以查询执行总代价为CPU代价+I/O代价;而在分布式数据库系统中,由于数据的分布和冗余,查询处理需要考虑站点间代价,所以除了考虑CPU代价和I/O代价外,还应该包括数据在网络上的传输代价,即总代价=CPU代价+I/O代价+传输代价[3]。
分布式数据库系统的查询优化追求两个目标:一是使总代价最小;二是使查询响应时间最短,这一点在分布式数据库系统中的意义尤为重要,因为分布式数据库系统是由多台计算机组成的,数据的分布和冗余也增加了查询并行处理的可能性,从而可以缩减查询处理的响应时间,提高查询处理速度。
分布式数据库的查询优化是云数据管理的研究热点之一。传统的分布式连接查询处理算法[4]以基于树的查询执行计划模型为基础,辅以Hash表[5]的使用,以达到查询优化目的。例如分布式空间连接查询使用的KD树,需要在数据集上事先建立索引[6];亦如基于树型结构的MapReduce并行模型,该模型在Reduce阶段建立反向二叉树来实现有效的结果合并和花间,减少整合查询结果所花费的代价[7]。然而上述模型在算法执行过程中产生大量的中间结果,从而导致大量的系统开销,抵消了分布式带来的效率提高。针对传统的分布式连接查询处理算法的不足,提出了基于半连接算法的查询优化处理,以及基于直接连接算法的查询优化处理[8][9]。这两种算法都是以总代价最小为优化准则。具体选择哪种算法,则需根据系统组成环境来确定。若传输代价较大,局部代价可以忽略不计,则采用半连接算法的查询优化处理;相反,若局部代价较大时,采用直接连接算法比采用半连接算法优越。在实际的应用中,系统组成环境可能比较复杂,应该综合考虑局部代价和传输代价。
基于直接连接算法的查询优化处理,针对执行场地的不同,针对连接方式的不同,以及针对传输方法的不同的查询优化研究见文献[10]。其针对直接连接的扫描关系不同,划分成了两种算法,嵌套循环法和合并扫描法;并根据查询地点的不同,划分成了查询站点为内关系所在地的Site(I),查询站点为外关系所在地的Site(O),以及查询站点为其他地点的Site(Other)。而基于半连接算法的查询优化处理在这三个方面的综合评估和代价分析研究还较少。因此本文重点研究基于半连接的实现方法,综合考虑局部代价和传输代价的相对费用,计算所有评估方法的执行代价,选择其中执行代价较小的执行方法,最终确定执行的场地、连接的方法和传输的方法。
上文中提到的文献来源于如下的期刊:
[1]Nishiyama S.DISTRIBUTED DATABASE SYSTEM:US,US 20110010338A1[P].2011.
Al Shehri W.Cloud Database Database As A Service.InternationalJournal of Database Management Systems.2013Apr 1;5(2):1.
[2]Wong E.Dynamic Rematerialization:Processing Distributed QueriesUsing Redundant Data[J].IEEE Transactions on Software Engineering,1983,SE-9(3):228-232.
[3]Shao Peiying.Distributed database system and its application[M].Science Press,2005
[4]bassiliades N,Vlahavas I.Hierarchical query execution in aparallel object-oriented database system[J].Parallel Computing,2000,22(7):1017-1048.
[5]Li Xuefeng.The use of distributed hash table to build a copy ofthe checkpoint[J].small and micro computer systems,2011,32(8):1548-1552.
[6]Zhao Qinghua,Chen Luo,Jingning.Distributed spatial Kd-treerecursive partitioning based on query[J].computer engineering and science,2011,33(8):167-172.
[7]Tang bing,Ho.Tree structure of multi MapReduce parallel model[J].based on computer science,2015,42(11):65-67.
[8]Ming-Syan Chen,Yu,P.S.Combining Join and Semi-Join Operations forDistributed Query Processing.[J].IEEE Transactions on Knowledge and DataEngineering,1993,5(3):534-542.
[9]Xiao Ling,Liu Jihong,Yao Yao.Research and application ofdistributed database system[J].Computer Engineering,2001,27(1):33-35.
[10]Chen Shibao.Research on distributed database query optimizationbased on direct connection[J].computer age,2011(7):16-17.
发明内容
技术问题:本发明的目的是提出一种基于查询地点不同的分布式半连接代价模型,以解决分布式连接的查询计划选择问题。利用该方法能在查询正式操作前,根据已有信息,利用现有表大小,以及表属性及元组长度,套用代价模型,确定查询计划。
技术方案:一种基于查询地点不同的分布式半连接代价模型,包括如下步骤:
(1)根据已有网络连接模型,以及半连接特征,建立适合半连接操作的代价模型;
(2)套用计算出的半连接代价模型,根据查询地点的不同,计算每一种查询计划分别需要查询的代价。根据查询地点不同可以分为2种情况:一种是查询站点包含其中一张表,另一种是查询站点不包含任意一张表;
(3)对于一次查询发起请求,根据查询地点不同,套用算法公式,选择较合适的查询计划,以期望查询代价较优。
其中根据查询地点不同,查询计划可以具体分为6种。假设表A在站点1上,表B在站点2上,查询发起请求在站点3上。
首先是查询地点包含其中一张表,即站点3=站点1,查询计划可以分为4类:
查询计划为(A∞A.x=B.x(πB.x(B)))∞B且选择将B传送给A,在A上进行最后的连接操作并返回;
查询计划为(B∞A.x=B.x(πA.x(A)))∞A且选择将B半连接后的结果传送给A,在A上进行最后的连接操作并返回;
查询计划为(A∞A.x=B.x(πB.x(B)))∞B且选择将A半连接后的结果传送给B,在B上进行最后的连接操作并将最终结果传送到A并返回;
查询计划为(B∞A.x=B.x(πA.x(A)))∞A且选择将A传送给B,在B上进行最后的连接操作并将最终结果传送到A返回。
查询地点不包含任意一张表时,即站点3≠站点1,站点3≠站点2,查询计划可以分为2类:
查询计划为(A∞A.x=B.x(πB.x(B)))∞B,选择将A半连接后的结果传送给B,在B上进行最后的连接操作并将最终结果传送到查询站点C上并返回。
查询计划为(A∞A.x=B.x(πA.x(A)))∞A,选择将B半连接后的结果传送给A,在A上进行最后的连接操作并将最终结果传送到查询站点C上并返回。
有益效果:
利用分布式半连接代价模型提前决定查询计划,从而高效计算出此次查询计划的估计代价。对查询计划根据查询站点不同,分为两种情况,并分别套用查询计划选择算法,选择其中相对较优的查询计划作为备选计划。
附图说明
图1是半连接执行过程示意图。
图2是当查询发起请求站点包含一个表,固定length(A)、length(B)以及连接属性length(A.x),调整size(A)与size(B)的大小的实验结果图。其中length(A)=length(B)=50Bit,length(A.x)=10Bit,size(A∞A.x=B.xB)=10K,Size(A)+Size(B)=100K,横坐标为A与B的比例,纵坐标为获得最终结果的时间,单位s。
图3是当查询发起请求站点包含一个表,固定size(A)与size(B)以及连接后的大小,调整length(A)、length(B)的实验结果图。其中size(A)=size(B)=50Bit,length(A.x)=10Bit,size(A∞A.x=B.xB)=10K,length(A)+length(B)=100Bit,横坐标为A与B的比例,纵坐标为获得最终结果的时间,单位s。
图4是当查询发起请求站点不包含任意一个表,固定length(A)、length(B)以及连接属性length(A.x),调整size(A)与size(B)的大小的实验结果图。其中length(A)=length(B)=50Bit,length(A.x)=10Bit,size(A∞A.x=B.xB)=10K,Size(A)+Size(B)=100K,横坐标为A与B的比例,纵坐标为获得最终结果的时间,单位s。
图5是当查询发起请求站点不包含任意一个表,固定size(A)与size(B)以及连接后的大小,调整length(A)、length(B)的实验结果图。其中size(A)=size(B)=50Bit,length(A.x)=10Bit,size(A∞A.x=B.xB)=10K,length(A)+length(B)=100Bit,横坐标为A与B的比例,纵坐标为获得最终结果的时间,单位s。
具体实施方式
下面结合附图对本发明创造做进一步详细说明。
假定站点1上的关系A与站点2上的关系B在属性A.x=B.x上进行等值连接,采用半连接方法表示这一操作为:
A∞A.x=B.xB=(A∝A.x=B.xB)∞A.x=B.xB
或B∞A.x=B.xA=(B∝A.x=B.xA)∞A.x=B.xA
其中,∝符号为半连接操作符,其操作具体为
A∝A.x=B.xB=πA(A∞A.x=B.xB)=A∞A.x=B.x(πB.x(B))
或B∝A.x=B.xA=πB(B∞A.x=B.xA)=B∞A.x=B.x(πA.x(A))
一次完整的半连接方法的连接操作过程关系代数可表示为
或
其中,∝代表半连接操作,∞代表连接操作,π代表投影操作。
针对公式(1),半连接的连接过程可分为五步,执行过程如图1所示。
在站点2上将B在属性B.x上进行投影获得B′=πB.x(B);
将B′传送到站点1;
在站点1上计算A′=A∞B′的半连接结果;以上三步即为半连接的压缩阶段。
将站点1上的A′与站点2上的B传送到发起查询请求的站点3上
在站点3上进行连接操作。
查询发起请求站点3有3中情况:设站点3=站点1的Site(A);设站点3=站点2的Site(B);或者其他场地Site(other)。根据查询地点的不同,则传送的数据量和传输费用会不同。
为了准确描述代价的计算,作如下定义:
1、一个关系A的元组数,表示为size(A)
2、每个属性xi的长度表示为length(A.xi),并将所有属性大小的总和,即一个元组的大小表示为length(A)。
一、查询站点为Site(A)
(1)查询计划为(A∞A.x=B.x(πB.x(B)))∞B且选择将B传送给A,在A上进行最后的连接操作并返回。根据连接计划,总执行代价可以表示为:
Cost1=T0+Cc(B′)+T1+Cc(B)+T2
=T0+T1+T2+C0+C1*size(B)*length(B.x)
+C0+C1*size(B)*length(B)
=T0+T1+T2+2C0
+C1*size(B)*(length(B.x)+length(B))
其中,T0表示投影操作时间,T1表示第一次连接操作时间,T2表示第二次连接操作时间。
(2)查询计划为(B∞A.x=B.x(πA.x(A)))∞A且选择将B半连接后的结果传送给A,在A上进行最后的连接操作并返回。根据连接计划,总执行代价可以表示为:
Cost2=T0+Cc(A′)+T1+Cc(B′)+T2
=T0+T1+T2+C0+C1*size(A)*length(A.x)
+C0+C1*size(A∞A.x=B.xB)*length(B)
=T0+T1+T2+2C0
+C1*(size(A)*length(A.x)
+size(A∞A.x=B.xB)*length(B))
(3)查询计划为(A∞A.x=B.x(πB.x(B)))∞B且选择将A半连接后的结果传送给B,在B上进行最后的连接操作并将最终结果传送到A并返回。根据连接计划,总执行代价可以表示为:
Cost3=T0+Cc(B′)+T1+Cc(A′)+T2+Cc(A∞A.x=B.xB)
=T0+T1+T2+C0+C1*size(B)*length(B.x)
+C0+C1*size(A∞A.x=B.xB)*length(A)
+C0+C1*size(A∞A.x=B.xB)*length(A∞A.x=B.xB)
=T0+T1+T2+3C0+C1*(size(B)*length(B.x)
+size(A∞A.x=B.xB)
*(2*length(A)+length(B)-length(A.x)))
(4)查询计划为(B∞A.x=B.x(πA.x(A)))∞A且选择将A传送给B,在B上进行最后的连接操作并将最终结果传送到A返回。
Cost4=T0+Cc(A′)+T1+Cc(A)+T2+Cc(A∞A.x=B.xB)
=T0+T1+T2+C0+C1*size(A)*length(A.x)
+C0+C1*size(A)*length(A)
+C0+C1*size(A∞A.x=B.xB)*length(A∞A.x=B.xB)
=T0+T1+T2+3C0
+C1*(size(A)*(length(A.x)+length(A))
+size(A∞A.x=B.xB)
*(length(A)+length(B)-length(A.x)))
对于Site(B)的查询情况,由于其本质与查询站点为Site(A)相同,只需要将上述公式的所有A替换成B,将所有的B替换成A,即可得到Site(B)情形下的代价函数。
查询站点为Site(other)
由于其在连接操作运算完成后,都需要进一步将最终结果传送到一个新的站点上,因此在半连接过程中无传送站点选择的差别,仅有查询计划的差异。
(1)查询计划为(A∞A.x=B.x(πB.x(B)))∞B,选择将A半连接后的结果传送给B,在B上进行最后的连接操作并将最终结果传送到查询站点C上并返回。根据连接计划,总执行代价可以表示为:
Cost5=T0+Cc(B′)+T1+Cc(A′)+T2+Cc(A∞A.x=B.xB)
=T0+T1+T2+C0+C1*size(B)*length(B.x)
+C0+C1*size(A∞A.x=B.xB)*length(A)
+C0+C1*size(A∞A.x=B.xB)*length(A∞A.x=B.xB)
=T0+T1+T2+3C0
+C1*(size(B)*length(B.x)
+size(A∞A.x=B.xB)
*(2*length(A)+length(B)-length(A.x)))
(2)查询计划为(B∞A.x=B.x(πA.x(A)))∞A,选择将B半连接后的结果传送给A,在A上进行最后的连接操作并将最终结果传送到查询站点C上并返回。由于Cost5和Cost6本质是A、B的互换,根据连接计划,总执行代价可以表示为:
Cost6=T0+T1+T2+3C0+C1*(size(A)*length(A.x)
+size(A∞A.x=B.xB)*(length(A)+2*length(B)-length(A.x)))
根据上述代价计算公式,当查询发起站点包含其中一个表时,比较Cost1,Cost2,Cost3,Cost4,选择其中代价最小的即可。当查询发起站点不包含连接所需表时,比较Cost5,Cost6,选择其中代价较小即可。
三、查询计划选择算法
(1)比较Cost2,,Cost4
比较Cost2,,Cost4,可得:
Cost4-Cost2=C0+C1*(size(A)*(length(A.x)+length(A))
+size(A∞A.x=B.xB)*(length(A)+length(B)-length(A.x))
-size(A)*length(A.x)-size(A∞A.x=B.xB)*length(B))
=C0+C1*(size(A)*length(A)
+size(A∞A.x=B.xB)*(length(A)-length(A.x))
由于对于一次半连接,其中length(A),length(B),length(A.x),length(B.x)是固定的,且length(A)必定大于length(A.x),因此相对于Cost2的代价,Cost4代价没有竞争力,在考虑执行计划时可以舍去。
(2)比较Cost1,,Cost3
比较Cost1,,Cost3,可得:
由于对于一次半连接,其中length(A),length(B),length(A.x),length(B.x)是固定的,因此只有当size(A∞A.x=B.xB)远小于size(B)时,公式(2)才为负,选择Cost3的计算公式。
(3)比较Cost1,,Cost2
比较Cost1,,Cost2,可得:
由于对于一次半连接,其中length(A),length(B),length(A.x),length(B.x)是固定的,因此当size(A∞A.x=B.xB)与size(B)非常接近且size(A)>size(B)时,公式(3)为正,选择Cost1的计算公式。
(4)比较Cost2,Cost3
比较Cost2,,Cost3,可得:
由于对于一次半连接,其中length(A),length(B),length(A.x),length(B.x)是固定的,因此当size(A∞A.x=B.xB)非常小且size(A)>size(B)时,公式(4)为负,选择Cost3的计算公式。
(5)比较Cost5,Cost6,可得:
由于对于一次半连接,其中length(A),length(B),length(A.x),length(B.x)是固定的,因此当size(A)>size(B)且length(B)>length(A)时,公式(5)为正,选择Cost5的计算公式。
当size(A)<size(B)且length(B)<length(A)时,公式(5)为负,选择Cost6的计算公式。
附图说明
下面通过说明书附图对各实验对本发明进行说明。
1、当查询发起站点包含其中一个表时
假设查询发起站点1包含其中一个表A时,另外一张待连接表B存储在站点2上,查询计划选择算法为:
A、根据表信息获得size(A)与size(B)
B、判断size(A)与size(B)的大小,如果size(A)远小于size(B),执行步骤C,反之执行步骤H
C、选择将B进行投影,并将结果传输到站点1,将B的投影与A进行连接
D、获得size(A∞A.x=B.xB)
E、判断size(B)与size(A∞A.x=B.xB)的大小,如果Size(B)≈size(A∞A.x=B.xB),执行步骤F,如果size(A∞A.x=B.xB)远小于size(B),执行步骤G,其他,执行步骤H
F、将B传输到站点1,在站点1上进行连接并返回,end
G、将半连接后的结果传输到站点2,在B上进行连接操作,将B上的结果传输到站点1上,返回,end
H、选择将A投影,传输到站点2与B进行半连接,将半连接后的结果传输到站点1与A进行连接并返回,end
实验验证
(1)调整size
根据图2,可得知在length(A)=length(B)=50,length(A.x)=10,size(A∞A.x=B.xB)=10K的情况下,Cost1,,Cost3随着Size(B)的大小增加,得到最终结果的时间逐渐减少。Cost2,Cost4随着Size(B)的大小增加,得到最终结果的时间逐渐增加,与4个Cost函数的趋势相同,并且根据实验数据,可得Cost4始终高于Cost2,因此在考虑执行计划时可以先排除Cost4查询计划。同时,根据图像可知Cost2与Cost3在Size(A)略大于Size(B)时,存在一个交点。在交点左侧,由于Cost2的查询计划相对于Cost3的查询计划减少了一次运输,因此相对时间较少。随着Size(A)增加,对A投影的传输代价也逐步上升。而在交点处,对A投影并传输的代价远大于最终结果的传输代价,因此增加的一次传输代价没有超出投影B相对于投影A减少的代价。在交点右侧,随着Size(A)增加,Cost2继续增加,而Cost3继续减少。在第一个交点左侧存在一个Cost3与Cost1的交点,由于随着Size(B)的减少,Size(B)与size(A∞A.x=B.xB)=10K逐渐接近,传输一次B关系与传输一次A、B连接后的结果时间相当,由于Cost1相对于Cost3减少了一次将最终结果传输到站点1的步骤,因此在交点过后Cost1相对较优。
(2)调整length
根据图3,可得知在size(A)=size(B)=50Bit,length(A.x)=10Bit,size(A∞A.x=B.xB)=10K的情况下,Cost1,Cost2随着length(B)的长度增加,得到最终结果的时间逐渐增加,Cost3,Cost4随着length(B)的大小增加,得到最终结果的时间逐渐减少,并且对于不同的length(A)与length(B)的比例,Cost2的代价始终保持在底层。由于对于Size(A)=Size(B)的情况,length()的变化相对于增加的一次传输操作产生的代价影响较小,因此Cost2最小。
2、当查询发起站点不包含任意一个表时
假设查询发起站点1不包含其中任何一张表时,查询计划选择算法为:
A、根据表信息,获得size(A)与size(B),length(A)与length(B)
B、比较,如果执行步骤C,反之执行步骤D
C、选择将A半连接后的结果传送给B,在B上进行最后的连接操作并将最终结果传送到查询站点C上并返回。
D、选择将B半连接后的结果传送给A,在A上进行最后的连接操作并将最终结果传送到查询站点C上并返回
实验验证
(1)调整size
根据图4,可知在length(A)=length(B)=50,length(A.x)=10,size(A∞A.x= B.xB)=10K的情况下,Cost5随着Size(B)的大小增加,得到最终结果的时间逐渐减少。Cost6随着Size(B)的大小增加,得到最终结果的时间逐渐增加,与2个Cost函数的计算相符,并且如图XX所示,可得在Size(A)≈Size(B)时,Cost5与Cost6存在交点。在交点左侧,由于Size(A)较大,因此将B投影可以使传输的代价较小,选择Cost6的传输计划;在交点右侧,由于Size(B)较大,因此将A投影可以使传输的代价较小,故选择Cost5的传输计划。
(2)调整length
根据图5,可知在size(A)=size(B)=50Bit,length(A.x)=10Bit,size(A∞A.x=B.xB)=10K的情况下,Cost5随着Size(B)的大小增加,得到最终结果的时间逐渐减少。Cost2,Cost6随着Size(B)的大小增加,得到最终结果的时间逐渐增加,与2个Cost函数的趋势相同,并且根据图像,可得在Size(A)与Size(B)相差不多的情况下,Cost5与Cost6存在交点。在交点左侧,由于Size(A)较大,因此将B投影可以使传输的代价较小,选择Cost6的传输计划;在交点右侧,由于Size(B)较大,因此将A投影可以使传输的代价较小,选择Cost5的传输计划。
通过以上几组实验验证了半连接查询计划选择算法的有效性。
Claims (4)
1.一种基于分布式数据库的半连接查询计划选择算法,其特征在于包括如下步骤:
(1)根据已有网络连接模型,以及半连接特征,建立适合半连接操作的代价模型;
(2)套用计算出的半连接代价模型,根据查询地点的不同,计算每一种查询计划分别需要查询的代价。根据查询地点不同可以分为2种情况:一种是查询站点包含其中一张表,另一种是查询站点不包含任意一张表;
(3)对于一次查询发起请求,根据查询地点不同,套用算法公式,选择较合适的查询计划,以期望查询代价较优。
2.如权利要求1的一种基于分布式数据库的半连接查询计划选择算法,其特征要确定查询请求处于分布式环境,包括:
在查询请求发起后,分布式系统会选择半连接操作作为连接的基本模式,即首先在站点2上将B在属性B.x上进行投影获得B′=πB.x(B);将B′传送到站点1;在站点1上计算A′=A∞B′的半连接结果;将站点1上的A′与站点2上的B传送到发起查询请求的站点3上;在站点3上进行连接操作。
3.如权利要求2的一种基于分布式数据库的半连接查询计划选择算法,其特征要确定查询请求发起站点所在地,包括:
首先基于查询站点3不同有3种情况:设站点3=站点1的Site(A);设站点3=站点2的Site(B);或者其他场地Site(other)。其次对于各个情况查询计划又有所不同,具体分为6种,需进行所有代价模型的建立方可比较得到最终的代价模型。
4.如权利要求3所述的一种基于分布式数据库的半连接查询计划选择算法,其特征在于,在计算代价模型时,还包括:
根据当前环境,更换代价模型中各个参数,计算当前环境下对于不同的查询计划的具体代价,并在计算完成后对其代价进行比较,根据算法选择较优查询计划。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611138749.8A CN108182192A (zh) | 2016-12-08 | 2016-12-08 | 一种基于分布式数据库的半连接查询计划选择算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611138749.8A CN108182192A (zh) | 2016-12-08 | 2016-12-08 | 一种基于分布式数据库的半连接查询计划选择算法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108182192A true CN108182192A (zh) | 2018-06-19 |
Family
ID=62545126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611138749.8A Pending CN108182192A (zh) | 2016-12-08 | 2016-12-08 | 一种基于分布式数据库的半连接查询计划选择算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108182192A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710643A (zh) * | 2018-12-20 | 2019-05-03 | 上海达梦数据库有限公司 | 外连接管理方法、装置、服务器及存储介质 |
CN110807030A (zh) * | 2019-09-27 | 2020-02-18 | 支付宝(杭州)信息技术有限公司 | 一种数据连接的方法、装置及电子设备 |
CN110955726A (zh) * | 2019-11-26 | 2020-04-03 | 中思博安科技(北京)有限公司 | 一种确定分布式代价的方法、装置、存储介质及电子设备 |
CN111352950A (zh) * | 2020-03-04 | 2020-06-30 | 上海达梦数据库有限公司 | 数据库表等值连接的优化方法、装置、服务器及存储介质 |
WO2020198925A1 (en) * | 2019-03-29 | 2020-10-08 | Pivotal Software, Inc. | Predicted properties for database query planning |
CN113516022A (zh) * | 2021-04-23 | 2021-10-19 | 黑龙江机智通智能科技有限公司 | 一种宫颈细胞的细粒度分类系统 |
WO2021254288A1 (en) * | 2020-06-14 | 2021-12-23 | Wenfei Fan | Querying shared data with security heterogeneity |
-
2016
- 2016-12-08 CN CN201611138749.8A patent/CN108182192A/zh active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710643A (zh) * | 2018-12-20 | 2019-05-03 | 上海达梦数据库有限公司 | 外连接管理方法、装置、服务器及存储介质 |
WO2020198925A1 (en) * | 2019-03-29 | 2020-10-08 | Pivotal Software, Inc. | Predicted properties for database query planning |
CN110807030A (zh) * | 2019-09-27 | 2020-02-18 | 支付宝(杭州)信息技术有限公司 | 一种数据连接的方法、装置及电子设备 |
CN110807030B (zh) * | 2019-09-27 | 2021-03-16 | 蚂蚁金服(杭州)网络技术有限公司 | 一种数据连接的方法、装置及电子设备 |
CN110955726A (zh) * | 2019-11-26 | 2020-04-03 | 中思博安科技(北京)有限公司 | 一种确定分布式代价的方法、装置、存储介质及电子设备 |
CN110955726B (zh) * | 2019-11-26 | 2022-12-23 | 中思博安科技(北京)有限公司 | 一种确定分布式代价的方法、装置、存储介质及电子设备 |
CN111352950A (zh) * | 2020-03-04 | 2020-06-30 | 上海达梦数据库有限公司 | 数据库表等值连接的优化方法、装置、服务器及存储介质 |
CN111352950B (zh) * | 2020-03-04 | 2023-05-16 | 上海达梦数据库有限公司 | 数据库表等值连接的优化方法、装置、服务器及存储介质 |
WO2021254288A1 (en) * | 2020-06-14 | 2021-12-23 | Wenfei Fan | Querying shared data with security heterogeneity |
CN113516022A (zh) * | 2021-04-23 | 2021-10-19 | 黑龙江机智通智能科技有限公司 | 一种宫颈细胞的细粒度分类系统 |
CN113516022B (zh) * | 2021-04-23 | 2023-01-10 | 黑龙江机智通智能科技有限公司 | 一种宫颈细胞的细粒度分类系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108182192A (zh) | 一种基于分布式数据库的半连接查询计划选择算法 | |
US11120022B2 (en) | Processing a database query using a shared metadata store | |
US7814091B2 (en) | Multi-tiered query processing techniques for minus and intersect operators | |
JP6338817B2 (ja) | データベースミドルウェアを用いたデータ管理システム及びその方法 | |
CN104063486B (zh) | 一种大数据分布式存储方法和系统 | |
CN107710200A (zh) | 用于并行化smp数据库中的基于散列的运算符的系统和方法 | |
CN109189751A (zh) | 基于区块链的数据同步方法及终端设备 | |
CN111177148B (zh) | 一种水电数据库自动建表分表的方法 | |
CN101739398A (zh) | 分布式数据库多连接查询优化算法 | |
CN104504154A (zh) | 一种数据聚合查询的方法及装置 | |
CN102891872B (zh) | 一种对等网络中数据存储和查询的方法及系统 | |
CN110347515B (zh) | 一种适合边缘计算环境的资源优化分配方法 | |
CN106168963B (zh) | 实时流数据的处理方法、装置及服务器 | |
CN105550274A (zh) | 双副本并行数据库的查询方法和装置 | |
CN103778251A (zh) | 面向大规模rdf图数据的sparql并行查询方法 | |
CN104834754A (zh) | 一种基于连接代价的sparql语义数据查询优化方法 | |
CN108345643A (zh) | 一种数据处理方法及装置 | |
CN103823846A (zh) | 一种基于图论的大数据存储及查询方法 | |
CN104714986A (zh) | 三维图片搜索方法与三维图片搜索系统 | |
CN108563697A (zh) | 一种数据处理方法、装置和存储介质 | |
Al Jawarneh et al. | Cost-effective strategies for provisioning NoSQL storage services in support for industry 4.0 | |
CN108228654A (zh) | 一种大数据分布式存储方法和系统 | |
Penteado et al. | Exploring controlled RDF distribution | |
CN110347676A (zh) | 基于关系r树的不确定性时态数据管理与查询方法 | |
Shneidman et al. | A cost-space approach to distributed query optimization in stream based overlays |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180619 |