CN102110158B - 一种基于改进型sdd-1算法的数据库多连接查询优化方法 - Google Patents
一种基于改进型sdd-1算法的数据库多连接查询优化方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明专利涉及一种基于改进型SDD-1算法的数据库多连接查询优化方法。首先将双向半连接引入到SDD-1算法中,从而在一定程度上提高其全局搜索能力。其次对SDD-1算法的核心部分,即爬山算法做出修正。对选取有益双向半连接部分,增加一定的扰动。这里并不直接选取收益最大的双向半连接,而是以一定的概率选取收益值属于一定范围内的双向半连接。这样,运行几次SDD-1算法,将得到不同的查询执行策略。将这些查询执行策略进行编码,并将其作为遗传算法的输入。经遗传算法优化后,最终得到需要的查询执行策略。
Description
技术领域
本发明专利涉及一种基于改进型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算法得到的结果进行优化。最终,得到一个比较理想的查询执行策略。
根据上述发明构思,本发明专利采用的技术方案进一步完善为:首先构造一个查询图 ,然后循环运行SDD-1算法次。每次运行中,先计算查询图中所有双向半连接的收益。找出其中净收益最大的双向半连接操作,这里净收益值定为。将净收益值属于范围内的所有双向半连接操作归并为一个集合,以蒙特卡罗选择策略从集合中选择一个元素,其中,为收益阈值。如此重复,直到查询图上不存在双向半连接。由此,就得到了一个查询执行策略。重复执行SDD-1算法到指定次数,我们就能得到个不同的执行策略。将SDD-1算法运行得到的查询执行策略集作为遗传算法的输入。经过遗传算法优化后,得到最终的查询执行策略。该方法具体包括如下步骤:
1)、设置初始参数:包括对SDD-1算法初始参数的设置和对遗传算法初始参数的设置;
2)、获取查询执行策略集:从构建的查询图中寻找有益双向半连接,并从有益双向半连接候选集中选择有益双向半连接到有益双向半连接集合中,重复以上步骤,直到查询图中不存在有益双向半连接,将所得有益双向半连接集合的值添加到执行策略集合中,重复以上步骤,直到运行次数达到;
4)、运行遗传算法:对种群重复执行交叉、变异、选择操作,直到运行次数达到;
5)、输出查询执行策略:将步骤4)输出种群中最好的个体作为最终结果,并将其解码为查询树,也即查询执行策略。
上述步骤1)中的设置初始参数的步骤如下:
上述步骤2)中的获取查询执行策略集的具体步骤如下:
(3)、循环执行步骤(1)和步骤(2),直到查询图中不存在有益双向半连接;
上述步骤3)中的构建遗传算法初始种群的具体步骤如下:
(2)、对查询树执行编码操作,利用编码所得结果构建遗传算法的初始种群。
上述步骤4)中的运行遗传算法的具体步骤如下:
(1)、对染色体实施交叉操作;
(2)、对染色体实施变异操作;
(3)、对染色体实施选择操作;
上述步骤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)
第一步:初始参数设置
第二步:获取查询执行策略集
在给出具体计算步骤前,我门先给出了一般半连接程序操作过程的传输代价估算公式:
在上述计算过程中,过程A)、C)、E)、不产生任何传输费用。于是,可以得到双向半连接的总代价为:
相应的收益可以表示为:
这样,可以得到双向半连接的净收益为:
从采用蒙特卡罗算法,从集合中选取一个双向半连接,将其添加到集合中,具体是,集合 中,元素被选中的概率与其净收益值成正比,即元素被选中的概率为;这里需要注意的是,集合中的元素个数为1个时,直接将该有益半连接添加到集合中;
B)、修改查询图的静态特性。具体来讲,就是用缩减后的关系去代替缩减之前的关系。
3、判断查询图中是否还存在有益双向半连接:
A)、重复执行步骤1、步骤2和步骤3,直到查询图上不存在有益的双向半连接。
5、重复执行步骤1、步骤2、步骤3和步骤4,直到完成指定的迭代次数。
第三步:构建遗传算法初始种群
2、对查询树执行编码操作,将所得染色体加入到遗传算法的初始种群中,查询树的编码步骤如下:
C)、将根节点(数字代号为0)添加到编码序列中;
第四步:运行遗传算法
1、对染色体执行交叉操作:
A)、根据查询树编码的特殊性,采用了一种启发式交叉算法。新的交叉算法选取代价最小的染色体子序列进行交叉。在给出具体的步骤之前,有必要给出如下定义:
新交叉算子的具体操作步骤:对于父代染色体、。中长基因子串为,将中的剔除,得到。剔除中存在于中的所有基因,得到序列,剔除中存在于的所有基因,得到序列。将和拼接在一起得到。将和得到。可以发现,这种操作相比传统的多点交叉操作,更节约时间。
2、对染色体执行变异操作:
变异的概率通常情况下都设置的比较低(传统的范围为:0.001-0.1)。与交叉操作存在同样的问题,变异操作必须保证变异后的染色体满足一个连接操作树应具有的结构,为此,定义了两种变异操作:
A)、随机交换染色体个体中任意两个非零字符的位置,即在连接树中随机交换两个叶子节点。这种方式变异后,能保证连接树的树形不改变;
B)、对于要变异的连接树,随机地选取两棵子树,这里不对树的大小作限制,为的就是可以改变连接树的形状,增加了种群的多样性,有效地弥补了交叉算子产生新个体能力不足的问题。然后交换两棵子树的位置,子树的选取过程中要注意,其中一棵子树不能是另一棵子树的子树,否则将产生无效的操作。
3、对染色体执行选择操作:
选用最佳个体保留策略与轮盘赌选择法相结合的选择策略。最佳个体保留策略选择法对于种群中最优秀(适应度最高)的染色体不进行交叉和变异运算,而直接把它们复制到下一代,以免交叉和变异运算破坏种群中的优秀解,保证了遗传算法的收敛,但有可能因群体中优秀染色体的急剧增加而导致搜索陷入局部最优解,造成算法的全局搜索能力不强,因此选择轮盘赌选择法(也就是所谓的蒙特卡罗选择算法或适应度比例选择算法)与最佳个体保留策略相结合的选择策略。具体操作如下:
A)、首先,计算染色体的适应度,将染色体的适应度定义为查询树对应的连接代价的倒数,具体可以表示为:
B)、其次,将第代的种群中的个体按适应度大小排序,适应度最大的排在第一位,适应度最小的排在最后一位,分别称为当前群体中的最佳个体和最差个体。若当前群体中最佳个体的适应度比历代最优个体的适应度高时,则复制当前群体中的最佳个体,并取代原先的最优个体而成为新的历代最优个体。反之,则不替代,仍保留原来的最优个体,并用历代最优个体替换当前群体中的最差个体而进入下一轮循环;
第五步:输出查询执行策略
1、将遗传算法输出种群中最好的个体作为最终结果,即净收益值最大的执行策略;
2、对染色体执行解码操作,得到最优查询树,也即查询执行策略。具体的解码步骤如下:
A)、假定有染色体序列,遍历中序序列,找到形如的数字(字符)连续串,其中、均为非零数字(可以是字符)。将该类型的数字(字符)串构建为一颗完全二叉树,其中为左节点,为右节点。并将替换成,其中为本次满足的个数;
实验结果
本实验所构造的分布式数据库查询实验平台是在实验室10台跨网段的机子上实现。为了更接近真实的分布式数据库的效果,每台机器上都使用了P2P软件来限速,上传和下载的速度均限制为。所用数据库是从所在实验室之前的一个大项目上移植过来的,经过一定处理,将实验所需要查询的数据表分布在不同的10台机子上。使用的开发环境:软件为WinXP +.NET2.0+MySQL5.0;硬件:Dell Precision 390。
下面给出了具体的实验室参数。SDD-1算法的迭代次数为关系数目的2倍;遗传算法的种群迭代次数设定为查询关系数目的3倍,交叉概率设定为0.95,变异概率设定为0.07。实验结果见表1和表2。
表1 计划生成代价
表2 计划执行代价
直观化结果见图3和图4。
这种改进的意义在于,虽然与纯粹的SDD-1算法相比,查询计划生成时间有了一定的增加,但是解的质量得到了有力的保证,这在已经成型的分布式数据库系统中是十分重要的。事实上,与实际查询时间相比,特别是对于一些经常使用的查询,查询计划生成时间上的适度增加几乎可以忽略。
Claims (1)
1.一种基于改进型SDD-1算法的数据库多连接查询优化方法,其特征在于操作步骤为:
1)、设置初始参数:包括对SDD-1算法初始参数的设置和对遗传算法初始参数的设置,具体步骤为:
2)、获取查询执行策略集,具体步骤为:
(1)、评估查询图中所有半连接的收益;
(2)、采用蒙特卡罗算法选择有益双向半连接;
(3)、添加选择的有益双向半连接到集合BS中,同时修改查询图的静态特性;
(4)、循环执行步骤(1)和步骤(3),直到查询图中不存在有益双向半连接;
(5)、将有益双向半连接集合BS的值添加到执行策略集合ES中;
(6)、重复执行步骤(1),步骤(2),步骤(3),步骤(4)和步骤(5),直到完成执行SDD-1算法指定的迭代次数N;
3)、构建遗传算法初始种群,具体步骤为:
(2)、对查询树执行编码操作,将所得染色体加入到遗传算法的初始种群中,查询树的编码步骤如下:
C)、将根节点添加到编码序列中,其中根节点的数字代号为0;
4)、运行遗传算法,具体步骤为:
(1)、对染色体实施交叉操作;
(2)、对染色体实施变异操作;
(3)、对染色体实施选择操作;
5)、输出查询执行策略,具体步骤为:
(1)、将遗传算法输出种群中最好的个体作为最终结果;
(2)、将最好的个体解码为查询树,也即查询执行策略,并输出。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1405727A (zh) * | 2002-11-07 | 2003-03-26 | 上海交通大学 | 基于遗传算法的图像内容检索方法 |
-
2011
- 2011-02-24 CN CN 201110043615 patent/CN102110158B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1405727A (zh) * | 2002-11-07 | 2003-03-26 | 上海交通大学 | 基于遗传算法的图像内容检索方法 |
Non-Patent Citations (2)
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 |