CN101576880A - 基于极值优化的数据库查询优化方法 - Google Patents
基于极值优化的数据库查询优化方法 Download PDFInfo
- Publication number
- CN101576880A CN101576880A CNA2008100159525A CN200810015952A CN101576880A CN 101576880 A CN101576880 A CN 101576880A CN A2008100159525 A CNA2008100159525 A CN A2008100159525A CN 200810015952 A CN200810015952 A CN 200810015952A CN 101576880 A CN101576880 A CN 101576880A
- Authority
- CN
- China
- Prior art keywords
- variable
- optimization
- population
- fitness
- 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.)
- Pending
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种信息技术和数据库技术领域的基于极值优化的数据库查询优化方法,主要用于解决关系数据库查询中的连接优化问题。技术方案要点如下:1.加载数据库统计信息,选择查询优化模型;2.采用两层循环迭代的新型优化算法,内层的种群个体根据极值过程原则进行迭代,外层循环中个体之间的相同连接被固定,减小变量数量后形成内层循环的种群;3.种群适应度的计算采用连接费用定义λi=3/(αi+βi),选择概率参数采用公式τ≈1+4/ln n,个体目标函数通过对每个个体所表示的执行计划方案的分析计算。本发明降低了个体适应度函数的计算量,在循环迭代中逐步减少变量的个数,降低了实际计算的规模,有效提高了查询优化的效率。
Description
技术领域
本发明涉及信息技术和数据库技术领域,具体地,涉及一种基于极值优化的数据库查询优化方法,该算法用于查询过程中连接操作的优化,以提高查询效率。
背景技术
数据和信息在当今社会活动中越来越显示出其重要性,已经成为人类发展的一种极为重要的资源。数据库是集中、统一保存和管理某一领域内所有信息的集合,是管理信息系统的核心。目前,几乎所有的应用查询都要和数据库打交道,通过查询数据库以获得需要的结果。
随着现代数据库规模的不断扩大以致到以十亿字节(GB)计量,对能够处理如此巨大的数据信息系统的需求也随之而来,找到一种高效的信息提取方法是十分必要的,高效的查询能够极大地提高系统的性能。因此,提高查询效率的有效手段——查询优化就显得尤为重要了。
查询优化是在把查询提交给数据库之前依照一定的衡量标准对查询进行优化的过程,是数据库操作中最基本、最常用,也是最复杂的操作。目前人们已经从很多不同角度对其做出了研究,尤其查询优化算法方面的研究很广泛,不同的查询算法,往往会使查询操作的执行效率产生很大的差异。
目前的查询优化处理通常包含两个阶段。第一阶段为查询重写,这一阶段对查询的内部表示进行分析,并根据需要作一些等价变换,其目的是为了将查询变换为效率更高的形式,另一方面也为查询优化的第二阶段提供必要的准备;第二阶段为计划优化,这是优化的主要阶段,它决定查询执行计划中关系的连接次序和连接方法以及使用什么样的存取方法。
在计划优化的处理过程中,经常会碰到有多条存取路径可选的情况,这时需要通过优化计算选取一条路径。在关系型数据库的查询中,表的连接次序的不同是执行计划多样性的一个重要原因,优化器必须能够通过一定的算法确定一个好的连接的次序,这一优化问题已经被证明是一个NP问题。
根据选择存取路径所基于的原则的不同,可以把查询优化分为两种类型:
基于规则的查询优化:首先根据经验给每个存取路径确定一个优先级,当有多条路径可以选择的时候,优化器根据优先级来选择存取路径,优先级高的路径被选定作为查询的执行路径。
基于代价的查询优化:先估算出各个存取路径的代价,然后选择出一个代价最小的路径。当前该类查询优化算法大致可分为三种:1.枚举算法,最典型的枚举算法是基于动态规划(Dynamic Programming,DP)的。如果查询语句符合标准SQL-92,中等复杂程度,并且数据库中只使用了简单合乎规范的查询执行技术,则DP算法是有效的。当查询涉及许多表,或新的查询优化和执行技术需要集成在系统中以在分布式和异类编程环境中优化查询。查询优化过程的搜索空间需求非常大,DP算法会因为其高度复杂性而变的不可行;2.启发式算法,如贪婪算法、KBZ算法和A B算法等;3.智能优化算法,如遗传算法(Genetic Algotithm,GA)、粒子群算法(Particle Swarm Optimizer,PSO)等。由于查询优化的NP难性质,智能优化算法的随机性和自治性使其成为空间搜索的有力工具,是数据库查询优化的一个新的重要研究方向。
当优化问题的规模较大、搜索空间变得复杂时,多数智能算法常常可以很快地找到近优解,但由于算法择优保留的搜索机制,以及后期变异、交叉等操作对最优解构成成分的破坏,算法在近优解附近振荡,却很长时间内无法到达最优解,或限于局部极值无法进行更广范围的搜索。而且由于算法参数往往凭经验设定,没有有效的选取机制,使得算法在求解实际优化问题的性能受到了很大限制。因此,需要对智能算法进行改进或寻求新的搜索机制,提高其搜索能力和查询优化效率。
发明内容
本发明的目的是针对目前查询优化问题执行计划空间大、搜索时间长等问题,以及现有智能优化算法搜索机制和效率的不足,提出一种基于极值优化的查询优化方法,算法参数具有最佳取值依据,并在迭代过程中逐步降低优化问题的规模,比其他智能优化算法如GA/PSO有更大的优越性。
在自然界中,当最无效的元素被选择性地驱使于消亡,就经常会出现高度复杂的结构。极值过程即是指在系统的演变过程中不断地清除适应性最差的元素,是自组织临界(Self-Organized Criticality,SOC)模型通常依赖的过程原则。受自然界中自组织过程的启发,Boettcher等设计了极值优化算法(Extremal Optimization,EO)。不同于遗传算法等繁殖优解的操作方式,极值优化算法不断以幂函数概率Pk∝k-τ选择适应性较差的变量进行变异(其中k为变量按适应度的排序号,τ为指定参数,并有其一般估计公式τopt≈1+4/lnn(n→∞),n为变量个数),逐步清除构成解的较差成分,从而很快地靠近近优解,并具有很强的跳出局部最优解的能力。对于一般算法难以求解的某些NP难问题,极值优化算法也具有较好的性能,是一种新型的仿生搜索算法。
但是极值优化算法采用单解迭代,其搜索能力受到一定限制,为此设计了基于群体操作的极值进化算法。并为了避免算法后期变异对最优解构成成分的破坏,在种群趋于稳定时将近优解中相同的构成进行固定,既保证了优解模式不被破坏,又降低了算法运行过程中实际优化问题的规模,提高了优化效率。
本发明方法具体如下:
步骤一:选择查询优化模型;
步骤二:加载数据库中的统计信息,形成两两表连接的成本参数;
步骤三:定义变量适应度和解的适应度,设置参数;
步骤四:算法种群初始化,定义变量的变异规则;
步骤五:内层迭代:对每个解,按定义的变异规则进行更新,根据变量适应度值由小到大将变量排序,具有相同值的变量随机排序,形成等级排列;计算解对应的目标函数值,按等级的分布概率函数选取要变异的变量,接受更新;
步骤六:判断种群是否趋于稳定;若是,执行步骤七,否则返回执行步骤五;
步骤七:外层迭代:比较种群中的解,固定相同部分,形成新的变量和种群,执行步骤五;
步骤八:若外层迭代过程中最佳个体的目标函数是否无明显改变,将最优个体所表示的执行计划方案作为优化结果输出。
流程如附图所示。
本发明方法中采用两层循环迭代,内层对每个个体施行极值优化,外层固定优解构成成分后减少变量个数,继续进行下一轮内层循环。从而减小单层循环后期对优解成分的破坏,并降低优化问题规模,提高优化速度和解的质量。
附图说明
附图是本发明的流程示意图。
具体实施方式
基于本发明方法开发了原型系统,该系统包括统计信息接口模块,
以下是对本发明的具体实施作进一步的描述:
步骤一:选择查询优化模型。如选择左深树模型,每一棵完成查询的左深连接树被看作一个个体,个体编码采用表和表之间的连接,执行时从左到右,用前面的中间结果和后面关系进行连接,直至无关系。如此查询优化问题可以看作开环TSP问题(Traveling SalesmanProblem),关系看作城市,关系和关系之间的连接算看作一个城市到另一个城市之间的距离或其它成本。
步骤二:加载数据库中表的统计信息,形成表之间连接的成本参数;
步骤三:定义变量适应度,给出解的目标函数,设置选择概率参数τ;
定义变量适应度为 定义解的目标函数为查询中表的连接总的成本开销;根据幂率选择函数τopt≈1+4/lnn(n→∞),计算选择概率参数τ的最佳取值。
步骤四:算法种群初始化,定义变量的变异规则;
变异规则:对TSP路径的调整,采用单点调整策略,根据幂函数概率选中一个节点改变其连接,可以避免两点交叉策略破坏较好解的可能。将相同的路径连接片断作为一个城市点,在路径的调整中保持中间连接不断。首先定义城市点的连接方法:
选择一个调整点c,切断该点的两个连接边中的一个,如c-a,选择另外的一个节点b与点c重新连接,这时出现一个只有一个连接边的点a,称为“单连接点”,和一个有三个连接边的点b,称为“三连接点”。
在一条路径中,按各点的排列顺序,排在前的点的位置为“前”,排在后的点的位置为“后”,路径中处在某两点之间的点的位置为“中”;一点与该点之前的点的连接称为“前连接”,与该点之后的点的连接称为“后连接”。
由调整点与“单连接点”和“三连接点”的相对位置确定“三连接点”的要切断的连接,经过分析,要保证新解的可行性,不产生截断回路和孤立点,要切断的“三连接点”的连接的选择是唯一的,连接规则见表1,下面以规则1为例进行说明。
表1三连接点的连接策略
策略1:若按事先规定的回路方向,三点在路径中的排列顺序为“三连接点”-“单连接点”-“调整点”,“调整点”被切断的连接为“前连接”,则“三连接点”被切断“前连接”,“三连接点”的“前”连接点与“单连接点”重新连接。
说明:假定在一条路径中,每个点有且只有两个连接。若选择一段路径d-b-a-c,调整点c,切断其两个连接中的“前连接”a-c,选择另外的一个节点b与点c重新连接,则a为“单连接点”,b为“三连接点”。则三点的位置排序为:b-a-c,若切断b的“后连接”b-a,则形成一条路径和一个孤立点a,若切断b的“前连接”d-b,将d与a连接,则重新构成一条路,连接片段变成d-a-b-c。
步骤五:内层迭代。(1)对每个解,按定义的变异规则进行更新,根据变量适应度值由小到大将变量排序,具有相同值的变量随机排序,形成等级 的排列;(2)计算解对应的目标函数值,按等级k的分布概率函数P(k)∝k-τ选取要变异的变量,接受更新。
步骤六:判断种群是否趋于稳定。若连续10次内层迭代后的种群中最好解的目标函数无明显改善,执行步骤七,否则返回执行步骤五;
步骤七:外层迭代。比较种群中的解,固定相同部分,形成新的变量和种群,执行步骤五;
以10城市TSP问题的三个解简单说明算法中新变量的产生机制。假设三个解的城市连接即三条路径分别为:
P1:1-10-3-8-6-7-9-2-4-5;
P2:6-3-8-2-9-5-4-1-10-7;
P3:7-2-9-10-5-4-8-3-6-1;
三个解的相同连接部分为:3-8,2-9,4-5;从而新解中将连接片段3-8,2-9,4-5分别作为一个城市在路径中连接,随机排列3-8,2-9,4-5与剩余的城市,产生一个新解1-6-3-8-2-9-10-4-5-7。按式τopt≈1+4/lnn调整参数τ,进行再优化。
步骤八:若连续三次外层迭代的最佳个体的目标函数无明显改变,将最优个体所表示的执行计划方案作为优化结果输出。
本发明方法具有可行性和高效性,能够解决查询优化问题,从而更好地协助数据库系统的查询操作。特别是极值优化算法借鉴了自然界去除劣势元素的思想,有效避免了陷于局部极值的危险,同时本发明能够逐步地降低优化的规模和复杂度,有效提高了查询优化的效率,为查询优化提供了新的方法。
Claims (5)
1.一种基于极值优化的数据库查询优化方法,其特征在于它通过如下步骤实现:(1)选择查询优化模型;(02)加载数据库中的统计信息,形成两两表连接的成本参数;(3)定义变量适应度和解的适应度,设置参数;(4)算法种群初始化,定义变量的变异规则;(5)内层迭代:按定义的变异规则对每个解进行更新,根据变量适应度值由小到大将变量排序,具有相同适应度值的变量随机排序,形成等级排列;计算解对应的目标函数值,按等级的分布概率函数选取要变异的变量,接受更新;(6)判断种群是否趋于稳定;若是,执行步骤(7),否则返回执行步骤五;(7)外层迭代:比较种群中的解,固定相同部分,形成新的变量和种群,执行步骤(5);(8)若外层迭代过程中最佳个体的目标函数是否无明显改变,将最优个体所表示的执行计划方案作为优化结果输出。
2.根据权力要求1所述的基于极值优化的数据库查询优化方法,其特征在于步骤(1)和步骤(3)中将查询优化模型转化,根据问题的开环特征定义变量适应度为λ′i=3/(αi+βi),发生变异的变量选择概率为τopt≈1+4/ln n(n→∞),避免了参数调整耗费大量计算时间。
3.根据权力要求1所述的基于极值优化的数据库查询优化方法,其特征在于步骤(4)中根据变量的变异规则定义,首先定义了路径中结点的连接前后顺序“前”、“中”、“后”、“连接点”等术语,推导了4个连接调整策略,避免了不可行个体解的出现。如策略1:若三点在路径中的排列顺序为“三连接点”-“单连接点”-“调整点”,“调整点”被切断的连接为“前连接”,则“三连接点”被切断“前连接”,“三连接点”的“前”连接点与“单连接点”重新连接。
5.根据权力要求1所述的基于极值优化的数据库查询优化方法,其特征在于步骤(5)和步骤(7)采用多个体解迭代的群体极值优化算法,并将种群中个体的相同连接固定后形成新的变量和种群,逐步减少了变量个数,降低了实际求解问题的规模。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100159525A CN101576880A (zh) | 2008-05-06 | 2008-05-06 | 基于极值优化的数据库查询优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100159525A CN101576880A (zh) | 2008-05-06 | 2008-05-06 | 基于极值优化的数据库查询优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101576880A true CN101576880A (zh) | 2009-11-11 |
Family
ID=41271814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100159525A Pending CN101576880A (zh) | 2008-05-06 | 2008-05-06 | 基于极值优化的数据库查询优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101576880A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104574442A (zh) * | 2015-01-14 | 2015-04-29 | 南京邮电大学 | 自适应粒子群优化粒子滤波运动目标跟踪方法 |
WO2017140085A1 (zh) * | 2016-02-19 | 2017-08-24 | 华为技术有限公司 | 一种sql执行计划的确定方法及装置 |
CN108509453A (zh) * | 2017-02-27 | 2018-09-07 | 华为技术有限公司 | 一种信息处理方法及装置 |
CN112256705A (zh) * | 2020-11-13 | 2021-01-22 | 北京理工大学 | 一种Gaia系统中的多表连接优化方法 |
-
2008
- 2008-05-06 CN CNA2008100159525A patent/CN101576880A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104574442A (zh) * | 2015-01-14 | 2015-04-29 | 南京邮电大学 | 自适应粒子群优化粒子滤波运动目标跟踪方法 |
CN104574442B (zh) * | 2015-01-14 | 2018-02-09 | 南京邮电大学 | 自适应粒子群优化粒子滤波运动目标跟踪方法 |
WO2017140085A1 (zh) * | 2016-02-19 | 2017-08-24 | 华为技术有限公司 | 一种sql执行计划的确定方法及装置 |
CN107102995A (zh) * | 2016-02-19 | 2017-08-29 | 华为技术有限公司 | 一种sql执行计划的确定方法及装置 |
CN107102995B (zh) * | 2016-02-19 | 2020-02-21 | 华为技术有限公司 | 一种sql执行计划的确定方法及装置 |
US10901976B2 (en) | 2016-02-19 | 2021-01-26 | Huawei Technologies Co., Ltd. | Method and apparatus for determining SQL execution plan |
CN108509453A (zh) * | 2017-02-27 | 2018-09-07 | 华为技术有限公司 | 一种信息处理方法及装置 |
CN112256705A (zh) * | 2020-11-13 | 2021-01-22 | 北京理工大学 | 一种Gaia系统中的多表连接优化方法 |
CN112256705B (zh) * | 2020-11-13 | 2022-11-01 | 北京理工大学 | 一种Gaia系统中的多表连接优化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11126626B2 (en) | Massively parallel and in-memory execution of grouping and aggregation in a heterogeneous system | |
CN102238686B (zh) | 一种模型化量子遗传算法的无线传感器网络路由方法 | |
Huang et al. | Large scale real-time ridesharing with service guarantee on road networks | |
CN102073700B (zh) | 一种复杂网络社团的发现方法 | |
CN106599519B (zh) | 面向生产订单组合优化的中厚板母板与板坯协同设计方法及系统 | |
CN104036324B (zh) | 一种基于遗传算法的通信网络容量可靠性最优设计方法 | |
CN107111653A (zh) | 适于并行数据库系统的系统内存负载的查询优化 | |
CN103176974A (zh) | 优化数据库中访问路径的方法和装置 | |
CN105976048A (zh) | 一种基于改进人工蜂群算法的输电网扩展规划方法 | |
CN103793467A (zh) | 一种基于超图和动态规划的大数据实时查询优化方法 | |
CN101576880A (zh) | 基于极值优化的数据库查询优化方法 | |
CN101093501A (zh) | 一种高效、透明的分布式空间数据库查询方法 | |
CN103678589A (zh) | 一种基于等价类的数据库内核查询优化方法 | |
CN105205052A (zh) | 一种数据挖掘方法及装置 | |
CN103246938A (zh) | 基于自适应蚁群优化的弹性车间调度技术 | |
CN105654187A (zh) | 控制系统中点定位方法之网格二叉树法 | |
CN107341596A (zh) | 基于层次任务网络和关键路径法的任务优化方法 | |
CN102004771B (zh) | 基于动态裁剪的移动对象反向近邻查询方法 | |
CN103984794B (zh) | 一种针对软模块的固定边框的集成电路布图规划方法 | |
CN106780747A (zh) | 一种快速分割cfd计算网格的方法 | |
KR101515304B1 (ko) | 하둡 기반의 리듀스-사이드 조인 처리 시스템의 리듀스-사이드 조인 질의 처리 방법 | |
CN109272151A (zh) | 一种基于Spark的车辆路径规划算法优化方法 | |
CN105511866B (zh) | 基于并行结构感知技术的资源约束条件下调度寻优方法 | |
Wang et al. | Feature ordering for neural incremental attribute learning based on Fisher's linear discriminant | |
CN104657429A (zh) | 基于复杂网络的技术驱动型产品创新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
DD01 | Delivery of document by public notice |
Addressee: Luo Xiang Document name: the First Notification of an Office Action |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20091111 |