CN102110158B - 一种基于改进型sdd-1算法的数据库多连接查询优化方法 - Google Patents

一种基于改进型sdd-1算法的数据库多连接查询优化方法 Download PDF

Info

Publication number
CN102110158B
CN102110158B CN 201110043615 CN201110043615A CN102110158B CN 102110158 B CN102110158 B CN 102110158B CN 201110043615 CN201110043615 CN 201110043615 CN 201110043615 A CN201110043615 A CN 201110043615A CN 102110158 B CN102110158 B CN 102110158B
Authority
CN
China
Prior art keywords
algorithm
query
sdd
connection
genetic algorithm
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.)
Expired - Fee Related
Application number
CN 201110043615
Other languages
English (en)
Other versions
CN102110158A (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.)
University of Shanghai for Science and Technology
Original Assignee
University of Shanghai for Science and Technology
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 University of Shanghai for Science and Technology filed Critical University of Shanghai for Science and Technology
Priority to CN 201110043615 priority Critical patent/CN102110158B/zh
Publication of CN102110158A publication Critical patent/CN102110158A/zh
Application granted granted Critical
Publication of CN102110158B publication Critical patent/CN102110158B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明专利涉及一种基于改进型SDD-1算法的数据库多连接查询优化方法。首先将双向半连接引入到SDD-1算法中,从而在一定程度上提高其全局搜索能力。其次对SDD-1算法的核心部分,即爬山算法做出修正。对选取有益双向半连接部分,增加一定的扰动。这里并不直接选取收益最大的双向半连接,而是以一定的概率选取收益值属于一定范围内的双向半连接。这样,运行几次SDD-1算法,将得到不同的查询执行策略。将这些查询执行策略进行编码,并将其作为遗传算法的输入。经遗传算法优化后,最终得到需要的查询执行策略。

Description

一种基于改进型SDD-1算法的数据库多连接查询优化方法
技术领域
本发明专利涉及一种基于改进型SDD-1(System for Distributed Database,分布式数据库系统)算法的数据库多连接查询优化方法,主要是针对分布式数据库中的多连接查询中的连接执行策略的优化问题,旨在保证得到一个较优的查询执行计划,从而大大较少查询尤其是大规模多连接查询的执行时间。
背景技术
如今,由于计算机的应用领域迅速扩大,数据库的规模也日益增长,用户查询越来越复杂。于是,人们在集中式数据库系统成熟技术的基础上产生和发展了分布式数据库系统。分布式数据库系统是数据库技术和网络技术两者相互渗透和有机结合的结果。分布式数据库系统中的数据在逻辑上属于同一个系统,而在物理上却分布在计算机网络的不同结点上,并由一个分布式数据库管理系统统一管理。
数据库查询是数据库的核心操作,数据库管理系统只需要用户提出“查什么”,而不需要用户解决“怎么查”,即指定具体的查询策略。在实际中,我们不仅要利用数据库管理系统根据SQL(Structure Query Language,结构化查询语言)指令准确查询用户需要的数据,还需要充分考虑其查询效率的高低。因此,查询效率是数据库管理系统必须面临的一大挑战。于是,相应的查询优化技术便成了计算机技术最活跃的研究领域之一。在集中式数据库中,执行查询的开销主要是数据的输入和输出以及中央处理器运算时产生的代价。分布式数据库系统是在集中式数据库系统技术的基础上发展起来的,除了数据的逻辑独立性与物理独立性外,还有数据分布独立性,也被称为分布透明性。分布透明性指的是用户不必关心数据的逻辑分片,不必关心数据物理位置分布的细节,也不必关心重复副本(冗余数据)一致性问题,同时也不必关心局部场地上数据库支持那种数据模型。
对用户来说,虽然使用分布式数据库系统与使用集中式数据库系统感觉上一样,好像所有数据都存储在自己使用的那台计算机中,但是,数据的分散存储使得查询处理中需要它们在站点间相互传递,而数据在网络上传输要花费很大的代价。因此,影响分布式查询优化性能不仅包括CPU(Central Processing Unit)、I/O(Input/Output)等在内的局部开销,更重要的是查询数据在站点间传输时的通信费用。而分布式数据库查询处理和优化不仅是影响分布式数据库管理系统性能的关键因素,而且还对整个应用系统数据的可用性、可扩展性、提高分布式数据库的使用效率和可靠性起着不可估量的作用。
实验结果表明,通过本发明专利优化后的分布式查询代价(主要是关系间的连接代价)比运用传统启发式优化方法所产生的代价更小。因此,本发明专利具有一定的实用价值。
发明内容
本发明专利的目的在于针对已有技术中存在的缺陷,提供一种基于改进型SDD-1算法的数据库多连接查询优化方法,通过遗传算法的全局搜索能力,对SDD-1算法得到的执行结果进行优化,并最终求得比较理想的结果。
为达到上述目的的构思为:首先执行改进的SDD-1算法,利用该算法得到一个查询执行策略集,将该执行策略集作为遗传算法的初始种群产生的依据。然后,执行遗传算法,利用遗传算法的全局搜索能力对SDD-1算法得到的结果进行优化。最终,得到一个比较理想的查询执行策略。
根据上述发明构思,本发明专利采用的技术方案进一步完善为:首先构造一个查询图                                                
Figure 909507DEST_PATH_IMAGE001
,然后循环运行SDD-1算法
Figure 980231DEST_PATH_IMAGE002
次。每次运行中,先计算查询图中所有双向半连接的收益。找出其中净收益最大的双向半连接操作,这里净收益值定为
Figure 998052DEST_PATH_IMAGE003
。将净收益值属于
Figure 478711DEST_PATH_IMAGE004
范围内的所有双向半连接操作归并为一个集合
Figure 974415DEST_PATH_IMAGE005
,以蒙特卡罗选择策略从集合
Figure 752884DEST_PATH_IMAGE005
中选择一个元素,其中,
Figure 447170DEST_PATH_IMAGE006
为收益阈值。如此重复,直到查询图上不存在双向半连接。由此,就得到了一个查询执行策略。重复执行SDD-1算法到指定次数
Figure 301994DEST_PATH_IMAGE002
,我们就能得到
Figure 81731DEST_PATH_IMAGE002
个不同的执行策略。将SDD-1算法运行得到的查询执行策略集作为遗传算法的输入。经过遗传算法优化后,得到最终的查询执行策略。该方法具体包括如下步骤:
1)、设置初始参数:包括对SDD-1算法初始参数的设置和对遗传算法初始参数的设置;
2)、获取查询执行策略集:从构建的查询图中寻找有益双向半连接,并从有益双向半连接候选集中选择有益双向半连接到有益双向半连接集合
Figure 663891DEST_PATH_IMAGE007
中,重复以上步骤,直到查询图中不存在有益双向半连接,将所得有益双向半连接集合
Figure 478263DEST_PATH_IMAGE007
的值添加到执行策略集合
Figure 238409DEST_PATH_IMAGE008
中,重复以上步骤,直到运行次数达到
3)、构建遗传算法初始种群:对执行策略集合
Figure 908871DEST_PATH_IMAGE008
中的元素依次执行编码操作,并将所得结果作为遗传算法的初始种群;
4)、运行遗传算法:对种群重复执行交叉、变异、选择操作,直到运行次数达到
5)、输出查询执行策略:将步骤4)输出种群中最好的个体作为最终结果,并将其解码为查询树,也即查询执行策略。
上述步骤1)中的设置初始参数的步骤如下:
 (1)、输入查询图
Figure 508797DEST_PATH_IMAGE001
,确定SDD-1执行次数
Figure 263126DEST_PATH_IMAGE009
,收益阈值
Figure 138DEST_PATH_IMAGE006
,建立有益双向半连接集合
Figure 710474DEST_PATH_IMAGE007
和执行策略集合
Figure 140318DEST_PATH_IMAGE008
(2)、确定遗传算法迭代次数,交叉概率
Figure 594750DEST_PATH_IMAGE011
,变易概率
Figure 238221DEST_PATH_IMAGE012
上述步骤2)中的获取查询执行策略集的具体步骤如下:
(1)、评估查询图
Figure 760338DEST_PATH_IMAGE001
中所有半连接的收益;
(2)、选择有益双向半连接到集合
Figure 489260DEST_PATH_IMAGE007
中,同时修改查询图的静态特性;
(3)、循环执行步骤(1)和步骤(2),直到查询图中不存在有益双向半连接;
(4)、将有益双向半连接集合
Figure 505758DEST_PATH_IMAGE007
的值添加到执行策略集合中;
(5)、重复执行步骤1、步骤2、步骤3和步骤4,直到完成指定的迭代次数
Figure 962333DEST_PATH_IMAGE002
上述步骤3)中的构建遗传算法初始种群的具体步骤如下:
(1)、将执行策略集合
Figure 912971DEST_PATH_IMAGE008
中的所有元素都转化为查询树;
(2)、对查询树执行编码操作,利用编码所得结果构建遗传算法的初始种群。
上述步骤4)中的运行遗传算法的具体步骤如下:
(1)、对染色体实施交叉操作;
(2)、对染色体实施变异操作;
(3)、对染色体实施选择操作;
(4)、重复执行步骤(1)、步骤(2)和步骤(3),直到遗传算法的迭代次数达到
Figure 795476DEST_PATH_IMAGE010
上述步骤5)中的输出查询执行策略的具体步骤如下:
(1)、将遗传算法输出种群中最好的个体作为最终结果;
(2)、将最好的个体解码为查询树,也即查询执行策略,并输出。
本发明与现有技术相比较,具有如下显而易见的突出实质性特点和显著优点:对传统的SDD-1的算法进行了改进,并将SDD-1算法生成的执行策略集合作为遗传算法的初始种群。这种做法相比传统的SDD-1算法而言,在于将双向半连接引入到SDD-1算法中,从而一定程度上强化了SDD-1算法中输出的执行策略;将遗传算法引入到本算法中,虽然一定程度上增加了执行计划生成时间的代价,但是遗传算法的全局搜索能力在很大程度上克服了传统SDD-1算法贪婪特性导致的在全局搜索能力的欠缺。改进后的SDD-1算法在实际执行代价上有了很大的削减。
附图说明
图1是本发明一个实施例子的流程图。
图2是图1示例中的基于双向半连接的执行示意图。
图3是图1示例中的计划生成代价示意图。
图4是图1示例中的执行计划代价示意图。
具体实施方式
本发明专利的一个优选实施例子结合附图说明如下:基于改进型SDD-1算法的数据库多连接查询优化方法共分为五大步:(参见图1)
第一步:初始参数设置
1、输入查询图
Figure 85643DEST_PATH_IMAGE001
,将SDD-1算法的执行次数N设定为查询关系数目的2倍,收益阈值
Figure 28192DEST_PATH_IMAGE006
设置为本次迭代中最佳有益半连接收益值的20%,构造有益双向半连接集合
Figure 653077DEST_PATH_IMAGE007
和执行策略集合
Figure 73694DEST_PATH_IMAGE008
2、遗传算法的迭代次数
Figure 483947DEST_PATH_IMAGE010
设置为查询关系数目的3倍,交叉概率设置为0.95,变异概率
Figure 522627DEST_PATH_IMAGE012
设置为0.07。
第二步:获取查询执行策略集
1、评估查询图
Figure 933886DEST_PATH_IMAGE001
中所有双向半连接的收益:
Figure 995382DEST_PATH_IMAGE013
Figure 217416DEST_PATH_IMAGE014
的公共属性为
Figure 629943DEST_PATH_IMAGE015
,则有:
Figure 657942DEST_PATH_IMAGE016
在给出具体计算步骤前,我门先给出了一般半连接程序操作过程的传输代价估算公式:
Figure 26475DEST_PATH_IMAGE017
其中
Figure 216148DEST_PATH_IMAGE018
均是与系统有关的常数。
Figure 619765DEST_PATH_IMAGE018
相当于站点间传输数据时,初始化所需的固定费用;而
Figure 108384DEST_PATH_IMAGE020
是网络传输数据的统一费用。
A)、在站点
Figure 468958DEST_PATH_IMAGE021
计算关系
Figure 856077DEST_PATH_IMAGE022
在属性上的投影
Figure 54157DEST_PATH_IMAGE023
,也即
Figure 44022DEST_PATH_IMAGE024
B)、把
Figure 652858DEST_PATH_IMAGE025
的结果从站点
Figure 764033DEST_PATH_IMAGE026
传到站点
Figure 2011100436159100002DEST_PATH_IMAGE027
,其传输代价为:
Figure 774715DEST_PATH_IMAGE028
其中
Figure 929621DEST_PATH_IMAGE029
为属性
Figure 25753DEST_PATH_IMAGE015
的长度,
Figure 675040DEST_PATH_IMAGE030
表示关系中属性
Figure 866036DEST_PATH_IMAGE015
不同值的个数;
C)、将
Figure 449464DEST_PATH_IMAGE024
 分成两大块,分别是
Figure 699180DEST_PATH_IMAGE031
Figure 622137DEST_PATH_IMAGE032
指的是与
Figure 189570DEST_PATH_IMAGE033
匹配的
Figure 242977DEST_PATH_IMAGE034
,而
Figure 82757DEST_PATH_IMAGE035
恰恰相反,指的是与
Figure 501100DEST_PATH_IMAGE033
不匹配的
Figure 793541DEST_PATH_IMAGE024
,即:
Figure 837589DEST_PATH_IMAGE036
D)、将
Figure 531876DEST_PATH_IMAGE031
Figure 121120DEST_PATH_IMAGE037
较小的一块,即
Figure 166436DEST_PATH_IMAGE038
回送到站点
Figure 561646DEST_PATH_IMAGE039
,这里产生的代价为:
Figure 297389DEST_PATH_IMAGE040
其中
Figure 385431DEST_PATH_IMAGE041
运算符用于求关系的元组数;
E)、利用站点回送过来的
Figure 590148DEST_PATH_IMAGE038
,将关系
Figure 789048DEST_PATH_IMAGE013
削减为
Figure 192347DEST_PATH_IMAGE042
。具体的操作分两种情况:
i、当站点
Figure 638241DEST_PATH_IMAGE021
回送的数据为
Figure 392570DEST_PATH_IMAGE043
时,执行: 
Figure 67265DEST_PATH_IMAGE044
ii、当站点回送的数据为
Figure 207446DEST_PATH_IMAGE045
时,执行: 
Figure 183492DEST_PATH_IMAGE046
在上述计算过程中,过程A)、C)、E)、不产生任何传输费用。于是,可以得到双向半连接的总代价为:
Figure 661878DEST_PATH_IMAGE047
考虑到本方法应用的主要场合是较大规模的分布式查询,传输的费用
Figure 305349DEST_PATH_IMAGE048
这里予以忽略,经过约减,可以表示为:
Figure 640515DEST_PATH_IMAGE049
相应的收益可以表示为:
Figure 550528DEST_PATH_IMAGE050
这样,可以得到双向半连接的净收益为:
Figure 629342DEST_PATH_IMAGE051
Figure 65003DEST_PATH_IMAGE052
大于0时,就认为该双向半连接是有益,图2给出了双向半连接的示意图。
2、选择有益双向半连接到集合
Figure 571071DEST_PATH_IMAGE007
中,同时修改查询图的静态特性:
A)、计算完查询图上所有双向半连接(设共有个),相应的净收益分别定义为
Figure 856744DEST_PATH_IMAGE054
,其中,找出其中具有最大净收益的双向半连接,这里定义为
Figure 89460DEST_PATH_IMAGE003
,将净收益满足大于
Figure 527394DEST_PATH_IMAGE056
的双向半连接归并到一个集合
Figure 134962DEST_PATH_IMAGE005
中,如下公式:
Figure 607531DEST_PATH_IMAGE057
从采用蒙特卡罗算法,从集合中选取一个双向半连接,将其添加到集合
Figure 318316DEST_PATH_IMAGE007
中,具体是,集合
Figure 542624DEST_PATH_IMAGE005
 中,元素被选中的概率与其净收益值成正比,即元素
Figure 56650DEST_PATH_IMAGE058
被选中的概率为
Figure 341001DEST_PATH_IMAGE059
;这里需要注意的是,集合
Figure 691211DEST_PATH_IMAGE005
中的元素个数为1个时,直接将该有益半连接添加到集合中;
B)、修改查询图的静态特性。具体来讲,就是用缩减后的关系去代替缩减之前的关系。
3、判断查询图中是否还存在有益双向半连接:
A)、重复执行步骤1、步骤2和步骤3,直到查询图上不存在有益的双向半连接。
4、将有益双向半连接集合
Figure 822164DEST_PATH_IMAGE007
的值添加到执行策略集合中:
A)、将有益双向半连接集合中的元素整合成一个连接执行顺序,我们记为
Figure 681033DEST_PATH_IMAGE060
。然后,将
Figure 717122DEST_PATH_IMAGE060
添加到执行策略集合
Figure 530226DEST_PATH_IMAGE061
中。
5、重复执行步骤1、步骤2、步骤3和步骤4,直到完成指定的迭代次数
第三步:构建遗传算法初始种群
1、将执行策略集合
Figure 21567DEST_PATH_IMAGE008
中的所有元素都转化为查询树;
2、对查询树执行编码操作,将所得染色体加入到遗传算法的初始种群中,查询树的编码步骤如下:
A)、将查询树上的所有连接操作用0进行替代,置自然数
Figure 115425DEST_PATH_IMAGE039
=0;
B)、中序遍历左子树,将遇到的第一个关系的数字代号标记为
Figure 912480DEST_PATH_IMAGE027
,并将其添加到编码序列
Figure 708266DEST_PATH_IMAGE062
中。将
Figure 881759DEST_PATH_IMAGE027
加1,并将自然数
Figure 892440DEST_PATH_IMAGE027
和对应关系添加到对应表
Figure 798079DEST_PATH_IMAGE063
中。若左子树为空则返回;
C)、将根节点(数字代号为0)添加到编码序列中;
D)、中序遍历右子树,将遇到的第一个关系的数字代号标记为
Figure 894211DEST_PATH_IMAGE027
,并将其添加到编码序列
Figure 527187DEST_PATH_IMAGE062
中。将加1,并将自然数
Figure 734494DEST_PATH_IMAGE027
和关系的对应关系添加到对应表
Figure 317922DEST_PATH_IMAGE063
中。若左子树为空则返回。
第四步:运行遗传算法
1、对染色体执行交叉操作:
A)、根据查询树编码的特殊性,采用了一种启发式交叉算法。新的交叉算法选取代价最小的染色体子序列进行交叉。在给出具体的步骤之前,有必要给出如下定义:
最小
Figure 567638DEST_PATH_IMAGE064
长度基因串定义:对于染色体
Figure 745722DEST_PATH_IMAGE065
,连接操作数为
Figure 55480DEST_PATH_IMAGE066
,叶节点数目为。则对于染色体中非零连续的基因数目共有
Figure 117294DEST_PATH_IMAGE067
个,在这些子串中,满足连接价值最小的
Figure 957074DEST_PATH_IMAGE064
长度基因串即为最小
Figure 624685DEST_PATH_IMAGE064
长度基因串;
       新交叉算子的具体操作步骤:对于父代染色体
Figure 917126DEST_PATH_IMAGE068
Figure 711906DEST_PATH_IMAGE069
Figure 406193DEST_PATH_IMAGE068
Figure 57754DEST_PATH_IMAGE064
长基因子串为
Figure 290021DEST_PATH_IMAGE070
,将
Figure 685230DEST_PATH_IMAGE068
中的
Figure 171707DEST_PATH_IMAGE071
剔除,得到。剔除
Figure 526782DEST_PATH_IMAGE073
中存在于
Figure 647053DEST_PATH_IMAGE074
中的所有基因,得到序列
Figure 315932DEST_PATH_IMAGE075
,剔除
Figure 512558DEST_PATH_IMAGE073
中存在于的所有基因,得到序列。将
Figure 714235DEST_PATH_IMAGE077
Figure 878500DEST_PATH_IMAGE074
拼接在一起得到
Figure 57809DEST_PATH_IMAGE078
。将
Figure 598512DEST_PATH_IMAGE072
Figure 976403DEST_PATH_IMAGE076
得到。可以发现,这种操作相比传统的多点交叉操作,更节约时间。
2、对染色体执行变异操作:
变异的概率通常情况下都设置的比较低(传统的范围为:0.001-0.1)。与交叉操作存在同样的问题,变异操作必须保证变异后的染色体满足一个连接操作树应具有的结构,为此,定义了两种变异操作:
A)、随机交换染色体个体中任意两个非零字符的位置,即在连接树中随机交换两个叶子节点。这种方式变异后,能保证连接树的树形不改变;
B)、对于要变异的连接树,随机地选取两棵子树,这里不对树的大小作限制,为的就是可以改变连接树的形状,增加了种群的多样性,有效地弥补了交叉算子产生新个体能力不足的问题。然后交换两棵子树的位置,子树的选取过程中要注意,其中一棵子树不能是另一棵子树的子树,否则将产生无效的操作。
3、对染色体执行选择操作:
选用最佳个体保留策略与轮盘赌选择法相结合的选择策略。最佳个体保留策略选择法对于种群中最优秀(适应度最高)的染色体不进行交叉和变异运算,而直接把它们复制到下一代,以免交叉和变异运算破坏种群中的优秀解,保证了遗传算法的收敛,但有可能因群体中优秀染色体的急剧增加而导致搜索陷入局部最优解,造成算法的全局搜索能力不强,因此选择轮盘赌选择法(也就是所谓的蒙特卡罗选择算法或适应度比例选择算法)与最佳个体保留策略相结合的选择策略。具体操作如下:
A)、首先,计算染色体的适应度,将染色体的适应度定义为查询树对应的连接代价的倒数,具体可以表示为:
Figure 227442DEST_PATH_IMAGE080
其中
Figure 509519DEST_PATH_IMAGE081
即为染色体
Figure 7496DEST_PATH_IMAGE082
对应的适应度。
Figure 700515DEST_PATH_IMAGE083
为染色体
Figure 916732DEST_PATH_IMAGE082
对应的代价,主要考虑关系的连接代价,两个关系间的连接代价如下:
Figure 799238DEST_PATH_IMAGE084
B)、其次,将第
Figure 89405DEST_PATH_IMAGE085
代的种群中的个体按适应度大小排序,适应度最大的排在第一位,适应度最小的排在最后一位,分别称为当前群体中的最佳个体和最差个体。若当前群体中最佳个体的适应度比历代最优个体的适应度高时,则复制当前群体中的最佳个体,并取代原先的最优个体而成为新的历代最优个体。反之,则不替代,仍保留原来的最优个体,并用历代最优个体替换当前群体中的最差个体而进入下一轮循环;
下面,给出选择概率的计算方法。设种群大小为
Figure 766374DEST_PATH_IMAGE002
,个体
Figure 391259DEST_PATH_IMAGE086
的适应度即为其对应的净收益
Figure 77455DEST_PATH_IMAGE087
,则在轮盘赌法中,第个染色体被选中的概率为: 
Figure 335578DEST_PATH_IMAGE088
,其中
Figure 260809DEST_PATH_IMAGE089
4、重复执行步骤(1)、步骤(2)和步骤(3),直到遗传算法的迭代次数达到
Figure 2146DEST_PATH_IMAGE010
第五步:输出查询执行策略
1、将遗传算法输出种群中最好的个体作为最终结果,即净收益值最大的执行策略;
2、对染色体执行解码操作,得到最优查询树,也即查询执行策略。具体的解码步骤如下:
A)、假定有染色体序列
Figure 329222DEST_PATH_IMAGE090
,遍历中序序列,找到形如
Figure 551256DEST_PATH_IMAGE091
的数字(字符)连续串,其中
Figure 698203DEST_PATH_IMAGE092
Figure 726202DEST_PATH_IMAGE093
均为非零数字(可以是字符)。将该类型的数字(字符)串构建为一颗完全二叉树,其中为左节点,为右节点。并将
Figure 387494DEST_PATH_IMAGE091
替换成,其中为本次满足
Figure 802797DEST_PATH_IMAGE091
的个数;
B)、重复以上步骤,直到序列
Figure 924337DEST_PATH_IMAGE090
中只有一个非零数字或字符。
实验结果
本实验所构造的分布式数据库查询实验平台是在实验室10台跨网段的机子上实现。为了更接近真实的分布式数据库的效果,每台机器上都使用了P2P软件来限速,上传和下载的速度均限制为。所用数据库是从所在实验室之前的一个大项目上移植过来的,经过一定处理,将实验所需要查询的数据表分布在不同的10台机子上。使用的开发环境:软件为WinXP +.NET2.0+MySQL5.0;硬件:Dell Precision 390。
下面给出了具体的实验室参数。SDD-1算法的迭代次数为关系数目的2倍;遗传算法的种群迭代次数设定为查询关系数目的3倍,交叉概率设定为0.95,变异概率设定为0.07。实验结果见表1和表2。
表1 计划生成代价
Figure 387997DEST_PATH_IMAGE097
 表2 计划执行代价
Figure 185051DEST_PATH_IMAGE098
 直观化结果见图3和图4。
这种改进的意义在于,虽然与纯粹的SDD-1算法相比,查询计划生成时间有了一定的增加,但是解的质量得到了有力的保证,这在已经成型的分布式数据库系统中是十分重要的。事实上,与实际查询时间相比,特别是对于一些经常使用的查询,查询计划生成时间上的适度增加几乎可以忽略。

Claims (1)

1.一种基于改进型SDD-1算法的数据库多连接查询优化方法,其特征在于操作步骤为:
1)、设置初始参数:包括对SDD-1算法初始参数的设置和对遗传算法初始参数的设置,具体步骤为:
(1)、输入查询图 
Figure 2011100436159100001DEST_PATH_IMAGE001
,确定SDD-1执行次数
Figure 2011100436159100001DEST_PATH_IMAGE002
,收益阈值
Figure 2011100436159100001DEST_PATH_IMAGE003
,建立有益双向半连接集合
Figure 2011100436159100001DEST_PATH_IMAGE004
和执行策略集合
Figure 2011100436159100001DEST_PATH_IMAGE005
(2)、确定遗传算法迭代次数,交叉概率
Figure 330868DEST_PATH_IMAGE007
,变异概率
Figure 2011100436159100001DEST_PATH_IMAGE008
2)、获取查询执行策略集,具体步骤为:
(1)、评估查询图中所有半连接的收益;
(2)、采用蒙特卡罗算法选择有益双向半连接;
(3)、添加选择的有益双向半连接到集合BS中,同时修改查询图的静态特性;
(4)、循环执行步骤(1)和步骤(3),直到查询图中不存在有益双向半连接;
(5)、将有益双向半连接集合BS的值添加到执行策略集合ES中;
(6)、重复执行步骤(1),步骤(2),步骤(3),步骤(4)和步骤(5),直到完成执行SDD-1算法指定的迭代次数N;
3)、构建遗传算法初始种群,具体步骤为:
(1)、将执行策略集合
Figure 965429DEST_PATH_IMAGE005
中的所有元素都转化为查询树;
(2)、对查询树执行编码操作,将所得染色体加入到遗传算法的初始种群中,查询树的编码步骤如下:
A)、将查询树上的所有连接操作用0进行替代,置自然数
Figure 2011100436159100001DEST_PATH_IMAGE010
=0;
B)、中序遍历左子树,将遇到的第一个关系的数字代号标记为
Figure 360638DEST_PATH_IMAGE010
,并将其添加到编码序列
Figure 2011100436159100001DEST_PATH_IMAGE012
中;将
Figure 112693DEST_PATH_IMAGE010
加1,并将自然数
Figure 935156DEST_PATH_IMAGE010
和对应关系添加到对应表
Figure 2011100436159100001DEST_PATH_IMAGE014
中;若左子树为空则返回;
C)、将根节点添加到编码序列中,其中根节点的数字代号为0;
D)、中序遍历右子树,将遇到的第一个关系的数字代号标记为
Figure 202189DEST_PATH_IMAGE010
,并将其添加到编码序列中;将
Figure 7651DEST_PATH_IMAGE010
加1,并将自然数
Figure 1015DEST_PATH_IMAGE010
和关系的对应关系添加到对应表
Figure 755344DEST_PATH_IMAGE014
中;若左子树为空则返回;
4)、运行遗传算法,具体步骤为:
(1)、对染色体实施交叉操作;
(2)、对染色体实施变异操作;
(3)、对染色体实施选择操作;
(4)、重复执行步骤(1)、步骤(2)和步骤(3),直到遗传算法的迭代次数达到
Figure 430039DEST_PATH_IMAGE006
5)、输出查询执行策略,具体步骤为:
(1)、将遗传算法输出种群中最好的个体作为最终结果;
(2)、将最好的个体解码为查询树,也即查询执行策略,并输出。
CN 201110043615 2011-02-24 2011-02-24 一种基于改进型sdd-1算法的数据库多连接查询优化方法 Expired - Fee Related CN102110158B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110043615 CN102110158B (zh) 2011-02-24 2011-02-24 一种基于改进型sdd-1算法的数据库多连接查询优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110043615 CN102110158B (zh) 2011-02-24 2011-02-24 一种基于改进型sdd-1算法的数据库多连接查询优化方法

Publications (2)

Publication Number Publication Date
CN102110158A CN102110158A (zh) 2011-06-29
CN102110158B true CN102110158B (zh) 2013-05-08

Family

ID=44174319

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110043615 Expired - Fee Related CN102110158B (zh) 2011-02-24 2011-02-24 一种基于改进型sdd-1算法的数据库多连接查询优化方法

Country Status (1)

Country Link
CN (1) CN102110158B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021169B (zh) * 2014-05-30 2018-01-16 江苏大学 一种基于SDD‑1算法的Hive连接查询方法
CN106161319A (zh) * 2015-04-13 2016-11-23 中南大学 融合遗传和爬山算法降低vlc-ofdm系统峰均功率比
CN106777054B (zh) * 2016-12-09 2020-03-27 北京华胜信泰数据技术有限公司 半连接合并方法和半连接合并装置
CN107463702A (zh) * 2017-08-16 2017-12-12 中科院成都信息技术股份有限公司 一种基于进化算法的数据库多连接查询优化方法
CN111311094B (zh) * 2020-02-14 2022-05-24 上海东普信息科技有限公司 供应链项目分析方法、装置、设备及存储介质
CN116662395A (zh) * 2023-07-24 2023-08-29 广州图灵科技有限公司 一种分布式数据库并行查询方法、系统、装置及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1405727A (zh) * 2002-11-07 2003-03-26 上海交通大学 基于遗传算法的图像内容检索方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1405727A (zh) * 2002-11-07 2003-03-26 上海交通大学 基于遗传算法的图像内容检索方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘放美等.分布式查询优化算法及对SDD-1算法的改进.《科技广场》.2005,(第2期),84-88页. *
石小艳等.SDD-1查询优化算法的研究与改进.《科技信息(学术研究)》.2008,(第28期),84-85页. *

Also Published As

Publication number Publication date
CN102110158A (zh) 2011-06-29

Similar Documents

Publication Publication Date Title
CN102110158B (zh) 一种基于改进型sdd-1算法的数据库多连接查询优化方法
Jia et al. Model transformation and data migration from relational database to MongoDB
Maccioni et al. Scalable pattern matching over compressed graphs via dedensification
Papagelis et al. Sampling online social networks
Zhao et al. Modeling MongoDB with relational model
Gao et al. Relational approach for shortest path discovery over large graphs
CN111551825B (zh) 基于故障电流通路的自适应配电网故障定位方法
CN103177094B (zh) 一种物联网数据清洗方法
CN110134714A (zh) 一种适用于大数据迭代计算的分布式计算框架缓存索引
CN104484472A (zh) 一种混合多种异构数据源的数据库集群及实现方法
Wang et al. TSMH Graph Cube: A novel framework for large scale multi-dimensional network analysis
CN110032470A (zh) 一种基于哈夫曼树的异构部分重复码的构造方法
Xue et al. Optimizing ontology alignments through NSGA-II without using reference alignment
CN104580518A (zh) 一种用于存储系统的负载均衡控制方法
CN110189230B (zh) 一种动态分区的解析化模型的构建方法
Chawla et al. JOTR: Join-optimistic triple reordering approach for SPARQL query optimization on big RDF data
CN116777670A (zh) 一种配电网理论线损分层并行计算方法、系统和终端
Zhang et al. Hybrid Subgraph Matching Framework Powered by Sketch Tree for Distributed Systems
CN112148830A (zh) 一种基于最大区域网格的语义数据存储与检索的方法及装置
Urbani On web-scale reasoning
Xue et al. A compact hybrid evolutionary algorithm for large scale instance matching in linked open data cloud
Xue Query optimization strategies and implementation based on distributed database
Li et al. Efficient clustering index for semantic Web service based on user preference
CN110851439A (zh) 一种基于b树和森林的邀请码推广层级查询系统
Lin et al. Sampling and summarization for social networks

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130508

Termination date: 20160224