CN103336829A - 基于模拟退火算法的查询优化方法 - Google Patents
基于模拟退火算法的查询优化方法 Download PDFInfo
- Publication number
- CN103336829A CN103336829A CN2013102822434A CN201310282243A CN103336829A CN 103336829 A CN103336829 A CN 103336829A CN 2013102822434 A CN2013102822434 A CN 2013102822434A CN 201310282243 A CN201310282243 A CN 201310282243A CN 103336829 A CN103336829 A CN 103336829A
- Authority
- CN
- China
- Prior art keywords
- solution
- simulated annealing
- cost
- query
- node
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于模拟退火算法的查询优化方法,是将数据查询优化过程分成建立模型,分解策略空间和优化三部分,然后引入模拟退火算法,对所有策略空间子集进行并行搜索,从每个子集中得到一个最终解,在比较最终解后得到最优解。本发明公开的模拟退火算法较其他智能优化算法能够有效避免陷入局部极值,缩减了优化时间;其次,由于使用了并行搜索,提高了模拟退火算法搜索范围,降低了模拟退火算法局部搜索特性对搜索精度的影响。与传统的局部随机搜索算法搜索到最优策略的概率比较,对提高得到最优策略的概率效果明显,提高了数据库的查询速度,缩短查询优化相对时间,以及提高得到最优策略概率。
Description
技术领域
本发明涉及一种关系数据库查询的优化方法,尤其是提高大型关系数据库多链接查询速度的优化方法。
背景技术
关系数据库是建立在数学概念基础上的一款主流数据库,能够直接的描述现实关系,存取效率较高,但是数据结构比较复杂,尤其是大型关系数据库,随着应用环境的扩大,其储存的数据种类越来越多,数量也越来越大,数据结构就变得极为复杂,在进行多链接查询时,查询效率低下。为了使大型关系数据库数据库系统能够及时响应用户操作,快速给出查询结果,往往要进行查询优化。查询优化指的是在查询语句对应的多种执行策略中选择一种能够最快给出查询结果的策略,即最优策略,执行策略也叫做查询策略,查询策略的集合称为策略空间S,查询优化过程中运用的算法称为查询优化方法。
传统查询优化方法主要包括穷尽搜索算法和局部随机搜索算法,穷尽搜索算法通过穷尽S内的每一条查询策略寻找最优策略,该算法对储存空间的需求很大,当查询关系个数较多时,算法效率太低,变得不可行。局部随机搜索算法在搜索最优策略的过程中并不搜索整个策略空间S,而只搜索它的一个子集,这个子集是被期待包含一个最优策略或者至少包含一个接近最优的策略,所以得到最优策略的概率很低。
近年,智能优化算法在数据库查询优化问题上得到广泛运用,如遗传算法(Genetic Algorithm,GA)和粒子群算法(Particle Swarm Optimizer,PSO)等。当优化问题的规模较大、搜索空间变得复杂时,多数智能算法能够搜索到近最优解,但由于算法择优保留的搜索机制,以及后期变异、交叉等操作对最优解构成成分的破坏,会使算法在近最优解附近振荡,延长了搜索时间,或陷入局部极值无法进行更广范围的搜索,降低了搜索精度。
发明内容
本发明的目的在于针对上述现有技术的不足,提供了一种适用于大型关系数据库多链接,能够缩短查询优化相对时间以及提高得到最优策略概率的一种基于模拟退火算法的查询优化方法。
本发明将数据查询优化过程分成建立模型,分解策略空间和优化3个部分,主要思想是:首先,将查询优化问题转化为求全局最优解的问题,即建立数学模型,计算查询策略给出查询结果所消耗的时间(代价)的函数为代价函数,查询策略为代价函数的解,策略空间S为代价函数的解空间,该模型叫做查询策略代价评估数学模型;然后,将策略空间随机分解成3个以上的子集;最后,引入模拟退火算法,对所有策略空间子集进行并行搜索,从每个子集中得到一个最终解,在比较最终解后得到最优解,该解对应的查询策略为最优策略。
本发明的目的是通过以下技术方案实现的:
基于模拟退火算法的查询优化方法,包括以下步骤:
a.定义一个策略空间S,设S内的所有查询策略都需要n-1个步骤才能够完成查询任务;
b.建立基于图形结构的查询策略代价评估数学模型,设图中有n个结点,从结点i(i=1,2,L,n)到结点j(j=1,2,L,n)的路径为dij,路径表示从结点i到结点j的消耗时间即代价,代价矩阵是 所求为遍历n个结点的总代价,代价函数如下:
式中:(x1,x2,L,xn)为代价函数f(X)的一个解X(1),其中xi=(1,2,3L,n),xj=(1,2,3L,n),xi≠xj(i≠j),f(X)所有解组成的集合称为解空间X,模型中的结点表示查询状态,遍历一次n个结点表示采用一种查询策略完成查询任务,X(1)表示某一种查询策略,解空间X表示策略空间S;
c.将解空间X随机分解成λ(λ≥2)个以上的子集,表示为Xr(1≤r≤λ);
d.采用模拟退火算法求最优解,先设定模拟退火算法的初始参数,包括初始温度t0,温度降温因子α,马氏链长度L,一般地,初始参数选取可采用下述经验值:t0=100,α=0.8或α=0.9,L=100n,计算过程中,新解的接受概率为:
式中:t为当前温度,降温后的温度Te=αt;
e.对所有解空间X的子集Xr(1≤r≤λ)并行采用模拟退火算法进行优化,从Xr中随机选取一个解作为当前解Xr(1),根据式(1)计算当前代价f(Xr(1));
f.令停止降温条件m=0,通过扰动方式调换当前解Xr(1)中任意几个元素的位置形成一个新的解Xr(2),根据公式(1)计算出新的代价f(Xr(2)),求出代价差Δf=f(Xr(2))-f(Xr(1)),新解的接受原则是,当Δf≤0时,接受Xr(2)作为当前最优解,当Δf>0时,给出0到1范围内的随机值β,在P>β时,接受Xr(2)作为当前最优解,否则抛弃Xr(2)。在当前温度下共进行L次扰动,若扰动过程中接受了新的解,则令m=1,再根据Te=αt降低温度;
g.令当前温度t=Te,重复步骤f,直到在当前温度t下不再接受新的解,令m=0,停止计算,此时函数收敛,求得的当前解为Xr最终解,比较各个子集对应的最终解,代价最小的为最优解,该解所对应的查询策略为最优策略。
有益效果:经试验,本发明公开的模拟退火算法较其他智能优化算法能够有效避免陷入局部极值,缩减了优化时间;其次,由于使用了并行搜索,提高了模拟退火算法搜索范围,降低了模拟退火算法局部搜索特性对搜索精度的影响。本发明公开的基于模拟退火算法的查询优化方法适用于大型数据库的查询优化,图1展示了基于模拟退火算法的查询优化方法收敛曲线,图2展示了模拟退火算法与传统的局部随机搜索算法搜索到最优策略的概率比较,从图中可以看出本发明对提高得到最优策略的概率的效果明显,而好的查询策略能够提高数据查询速度,本发明能够提高数据库的查询速度,缩短查询优化相对时间,以及提高得到最优策略概率。
附图说明
图1基于模拟退火算法的查询优化方法收敛曲线图
图2模拟退火算法与传统查询优化算法搜索到最优策略的概率比较图
具体实施方式
下面结合附图对本发明作进一步的详细说明:
基于模拟退火算法的查询优化方法,是在大型数据库多条件复杂查询情况下对查询语句进行优化。主要通过比较查询语句对应的多种查询策略在执行过程中消耗的时间大小,找到消耗时间最小的查询策略,即最优策略,本发明能够提高得到最优策略的概率,从而提高系统的查询速度。
基于模拟退火算法的查询优化算法,包括以下步骤:
a.定义一个策略空间S,设S内的所有查询策略都需要n-1个步骤才能够完成查询任务;
b.建立基于图形结构的查询策略代价评估数学模型,设图中有n个结点,从结点i(i=1,2,L,n)到结点j(j=1,2,L,n)的路径为dij,路径表示从结点i到结点j的消耗时间即代价,代价矩阵是 所求为遍历n个结点的总代价,代价函数如下:
式中:(x1,x2,L,xn)为代价函数f(X)的一个解X(1),其中xi=(1,2,3L,n),xj=(1,2,3L,n),xi≠xj(i≠j),f(X)所有解组成的集合称为解空间X,模型中的结点表示查询状态,遍历一次n个结点表示采用一种查询策略完成查询任务,X(1)表示某一种查询策略,解空间X表示策略空间S;
c.将解空间X随机分解成λ(λ≥2)个以上的子集,表示为Xr(1≤r≤λ);
d.采用模拟退火算法求最优解,先设定模拟退火算法的初始参数,包括初始温度t0,温度降温因子α,马氏链长度L,一般地,初始参数选取可采用下述经验值:t0=100,α=0.8或α=0.9,L=100n,计算过程中,新解的接受概率为:
式中:t为当前温度,降温后的温度Te=αt;
e、对所有解空间X的子集Xr(1≤r≤λ)并行采用模拟退火算法进行优化,从Xr中随机选取一个解作为当前解Xr(1),根据式(1)计算当前代价f(Xr(1));
f、令停止降温条件m=0,通过扰动方式调换当前解Xr(1)中任意几个元素的位置形成一个新的解Xr(2),根据公式(1)计算出新的代价f(Xr(2)),求出代价差Δf=f(Xr(2))-f(Xr(1)),新解的接受原则是,当Δf≤0时,接受Xr(2)作为当前最优解,当Δf>0时,给出0到1范围内的随机值β,在P>β时,接受Xr(2)作为当前最优解,否则抛弃Xr(2)。在当前温度下共进行L次扰动,若扰动过程中接受了新的解,则令m=1,再根据Te=αt降低温度;
g、令当前温度t=Te,重复步骤f,直到在当前温度t下不再接受新的解,令m=0,停止计算,此时函数收敛,求得的当前解为Xr最终解,比较各个子集对应的最终解,代价最小的为最优解,该解所对应的查询策略为最优策略。
实施例
基于模拟退火算法的数据库查询优化算法,以对一条需要8个步骤完成查询任务的查询命令进行查询优化为例:包括以下步骤:
a.定义一个策略空间S,设S内的所有查询策略都需要8个步骤能够完成查询任务;
b.建立基于图形结构的查询策略代价评估数学模型,设图中有9个结点,从结点i(i=1,2,L,9)到结点j(j=1,2,L,9)的路径为dij,路径表示从结点i到结点j的消耗时间即代价,代价矩阵是 所求为遍历9个结点的总代价,将n=9带入公式(1)中得到的代价函数为:
式中:(x1,x2,L,x9)为代价函数f(X)的一个解X1,其中xi=(1,2,3L,9),xj=(1,2,3L,9),xi≠xj(i≠j),所有解组成的集合称为解空间X,经过计算统计本例中共有362880个解,其中最优解为2585.5;
c.本例中将解空间X随机分解成了3个子集,表示为Xr(1≤r≤3);
d.采用模拟退火算法求最优解,先设定模拟退火算法的初始参数,初始温度t0=100,温度衰减因子α取0.8,马氏链长度为L=900,根据公式(2)计算新解的接受概率为,降温后的温度Te=0.8t,;
e.对3个子集X1,X2,X3并行采用模拟退火算法进行优化,从3个子集中随机选取一个解作为这个子集的当前解Xr(1),根据式(1)计算当前代价f(Xr(1)),本例中以子集X1示范,当前解Xr(1):
X1(1)=(1174.6,167.7,1571.1,843.3,940.8,951.8,1677.1,649.0)
初始代价f(X1)=7975.4;
f.令停止降温条件m=0,通过扰动方式调换当前解X1(1)中任意几个元素的位置形成一个新的解X1(2),本例中生成的新解为:
X1(2)=(593.7,202.5,781.0,91.0,1577.9,1314.8,1059.3,665.6)
新代价为f(X2)=6285.8,求出代价差Δf=-1689.6,此时Δf≤0,接受X2作为当前最优解,若Δf>0时,给出0到1范围内的随机值r,在P>r时,接受X1(2)作为当前最优解,否则抛弃X1(2)。在当前温度下共进行900次扰动,若扰动过程中接受了新的解,则令m=1,再根据Te=0.8t降低温度;
g.令当前温度t=Te,重复步骤f,直到在当前温度t下不再接受新的解,令m=0,停止计算,此时函数收敛,本例子集X1共降温9次,最后t=13.4218,最终解为2585.5,其它子集X2和X3分别降温9次和11次,最终解分别为2984.5和2608.3,则最优解为2585.5,其所对应的查询策略为最优策略。
采用上述方法对9结点查询命令进行查询优化,图1是运用本发明搜索最优策略的收敛曲线,图2是本发明与传统查询优化算法在不同解结点的情况下搜索到最优策略的概率比较,可以看到本发明得到最优策略的概率明显高于传统查询优化算法。
Claims (1)
1.一种基于模拟退火算法的查询优化方法,其特征在于,包括以下步骤:
a、定义一个策略空间S,设S内的所有查询策略都需要n-1个步骤才能够完成查询任务;
b、建立基于图形结构的查询策略代价评估数学模型,设图中有n个结点,从结点i(i=1,2,L,n)到结点j(j=1,2,L,n)的路径为dij,路径表示从结点i到结点j的消耗时间即代价,代价矩阵是 所求为遍历n个结点的总代价,代价函数如下:
式中:(x1,x2,L,xn)为代价函数f(X)的一个解X1,其中xi=(1,2,3L,n),xj=(1,2,3L,n),xi≠xj(i≠j),f(X)所有解组成的集合称为解空间X,模型中的结点表示查询状态,遍历一次n个结点表示采用一种查询策略完成查询任务,X1表示某一种查询策略,解空间X表示策略空间S;
c、将解空间X随机分解成λ(λ≥2)个以上的子集,表示为Xr(1≤r≤λ);
d、采用模拟退火算法求最优解,先设定模拟退火算法的初始参数,包括初始温度t0,温度降温因子α,马氏链长度L,一般地,初始参数选取可采用下述经验值:t0=100,α=0.8或α=0.9,L=100n,计算过程中,新解的接受概率为:
式中:t为当前温度,降温后的温度Te=αt;
e、对所有解空间X的子集Xr(1≤r≤λ)并行采用模拟退火算法进行优化,从Xr中随机选取一个解作为当前解Xr(1),根据式(1)计算当前代价f(Xr(1));
f、令停止降温条件m=0,通过扰动方式调换当前解Xr(1)中任意几个元素的位置形成一个新的解Xr(2),根据公式(1)计算出新的代价f(Xr(2)),求出代价差Δf=f(Xr(2))-f(Xr(1)),新解的接受原则是,当Δf≤0时,接受Xr(2)作为当前最优解,当Δf>0时,给出0到1范围内的随机值β,在P>β时,接受Xr(2)作为当前最优解,否则抛弃Xr(2)。在当前温度下共进行L次扰动,若扰动过程中接受了新的解,则令m=1,再根据Te=αt降低温度;
g、令当前温度t=Te,重复步骤f,直到在当前温度t下不再接受新的解,令m=0,停止计算,此时函数收敛,求得的当前解为Xr最终解,比较各个子集对应的最终解,代价最小的为最优解,该解所对应的查询策略为最优策略。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310282243.4A CN103336829B (zh) | 2013-07-05 | 2013-07-05 | 基于模拟退火算法的查询优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310282243.4A CN103336829B (zh) | 2013-07-05 | 2013-07-05 | 基于模拟退火算法的查询优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103336829A true CN103336829A (zh) | 2013-10-02 |
CN103336829B CN103336829B (zh) | 2017-02-15 |
Family
ID=49244994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310282243.4A Expired - Fee Related CN103336829B (zh) | 2013-07-05 | 2013-07-05 | 基于模拟退火算法的查询优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103336829B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488581A (zh) * | 2015-11-13 | 2016-04-13 | 清华大学 | 一种基于模拟退火算法的交通需求量估计方法 |
CN108604224A (zh) * | 2016-01-28 | 2018-09-28 | 皇家飞利浦有限公司 | 用于缩减数据集的数据缩减 |
CN111626423A (zh) * | 2020-05-21 | 2020-09-04 | 宿迁学院 | 一种基于模拟退火的量子寄存器分配方法和系统 |
-
2013
- 2013-07-05 CN CN201310282243.4A patent/CN103336829B/zh not_active Expired - Fee Related
Non-Patent Citations (3)
Title |
---|
张蓉 等: "《快速分解模拟退火算法在全局查询优化中的应用》", 《计算机工程与应用》 * |
林慧君 等: "《模拟退火算法在全局查询优化中的应用》", 《计算机技术与发展》 * |
陈继华 等: "《基于模拟退火的查询优化算法的设计与实现》", 《计算机应用》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105488581A (zh) * | 2015-11-13 | 2016-04-13 | 清华大学 | 一种基于模拟退火算法的交通需求量估计方法 |
CN105488581B (zh) * | 2015-11-13 | 2019-09-27 | 清华大学 | 一种基于模拟退火算法的交通需求量估计方法 |
CN108604224A (zh) * | 2016-01-28 | 2018-09-28 | 皇家飞利浦有限公司 | 用于缩减数据集的数据缩减 |
CN108604224B (zh) * | 2016-01-28 | 2023-11-17 | 皇家飞利浦有限公司 | 用于缩减数据集的数据缩减 |
CN111626423A (zh) * | 2020-05-21 | 2020-09-04 | 宿迁学院 | 一种基于模拟退火的量子寄存器分配方法和系统 |
CN111626423B (zh) * | 2020-05-21 | 2024-03-08 | 宿迁学院 | 一种基于模拟退火的量子寄存器分配方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103336829B (zh) | 2017-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mi et al. | Short‐term power load forecasting method based on improved exponential smoothing grey model | |
CN107291807B (zh) | 一种基于图遍历的sparql查询优化方法 | |
CN103793467B (zh) | 一种基于超图和动态规划的大数据实时查询优化方法 | |
CN110909111B (zh) | 基于知识图谱rdf数据特征的分布式存储与索引方法 | |
CN105117461B (zh) | 一种基于改进的遗传算法的查询优化方法 | |
CN105677683A (zh) | 批量数据查询方法和装置 | |
CN114428803B (zh) | 空压站运行优化方法、系统、存储介质及终端 | |
CN104361113A (zh) | 一种内存-闪存混合存储模式下的olap查询优化方法 | |
Xu et al. | Data based online operational performance optimization with varying work conditions for steam-turbine system | |
CN105515997B (zh) | 基于bf_tcam实现零范围扩张的高效范围匹配方法 | |
CN104462657B (zh) | 基于Petri网复杂系统多设计方案的选择方法 | |
Wang et al. | Short-term load forecasting of power system based on time convolutional network | |
CN103336829A (zh) | 基于模拟退火算法的查询优化方法 | |
CN109446293B (zh) | 一种并行的高维近邻查询方法 | |
CN114385670A (zh) | 复杂产品变型设计的案例推理方法 | |
AU2020101071A4 (en) | A Parallel Association Mining Algorithm for Analyzing Passenger Travel Characteristics | |
CN102722546B (zh) | 关系数据库环境下图中最短路径的查询方法 | |
CN102521451B (zh) | 一种支持快速模型拼接的电网模型文件、生成方法及系统 | |
Subramanian et al. | Query optimization in multidatabase systems | |
CN112734010B (zh) | 一种适用于图像识别的卷积神经网络模型压缩方法 | |
CN106383863A (zh) | 一种同构子图查询优化方法 | |
Li et al. | Fault diagnosis knowledge base optimization based on decision tree | |
CN105117527A (zh) | 一种循环流化床锅炉燃烧系统模型的建模方法 | |
CN112148830A (zh) | 一种基于最大区域网格的语义数据存储与检索的方法及装置 | |
Xu et al. | What-if query processing policy for big data in OLAP system |
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 |
Granted publication date: 20170215 Termination date: 20190705 |
|
CF01 | Termination of patent right due to non-payment of annual fee |