專利名稱::基于極值優(yōu)化的數(shù)據(jù)庫(kù)查詢優(yōu)化方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及信息技術(shù)和數(shù)據(jù)庫(kù)
技術(shù)領(lǐng)域:
,具體地,涉及一種基于極值優(yōu)化的數(shù)據(jù)庫(kù)查詢優(yōu)化方法,該算法用于査詢過程中連接操作的優(yōu)化,以提高査詢效率。
背景技術(shù):
:數(shù)據(jù)和信息在當(dāng)今社會(huì)活動(dòng)中越來(lái)越顯示出其重要性,已經(jīng)成為人類發(fā)展的一種極為重要的資源。數(shù)據(jù)庫(kù)是集中、統(tǒng)一保存和管理某一領(lǐng)域內(nèi)所有信息的集合,是管理信息系統(tǒng)的核心。目前,幾乎所有的應(yīng)用査詢都要和數(shù)據(jù)庫(kù)打交道,通過查詢數(shù)據(jù)庫(kù)以獲得需要的結(jié)果。隨著現(xiàn)代數(shù)據(jù)庫(kù)規(guī)模的不斷擴(kuò)大以致到以十億字節(jié)(GB)計(jì)量,對(duì)能夠處理如此巨大的數(shù)據(jù)信息系統(tǒng)的需求也隨之而來(lái),找到一種高效的信息提取方法是十分必要的,高效的査詢能夠極大地提高系統(tǒng)的性能。因此,提高査詢效率的有效手段——查詢優(yōu)化就顯得尤為重要了。査詢優(yōu)化是在把查詢提交給數(shù)據(jù)庫(kù)之前依照一定的衡量標(biāo)準(zhǔn)對(duì)查詢進(jìn)行優(yōu)化的過程,是數(shù)據(jù)庫(kù)操作中最基本、最常用,也是最復(fù)雜的操作。目前人們已經(jīng)從很多不同角度對(duì)其做出了研究,尤其査詢優(yōu)化算法方面的研究很廣泛,不同的査詢算法,往往會(huì)使査詢操作的執(zhí)行效率產(chǎn)生很大的差異。目前的查詢優(yōu)化處理通常包含兩個(gè)階段。第一階段為查詢重寫,這一階段對(duì)査詢的內(nèi)部表示進(jìn)行分析,并根據(jù)需要作一些等價(jià)變換,其目的是為了將査詢變換為效率更高的形式,另一方面也為查詢優(yōu)化的第二階段提供必要的準(zhǔn)備;第二階段為計(jì)劃優(yōu)化,這是優(yōu)化的主要階段,它決定査詢執(zhí)行計(jì)劃中關(guān)系的連接次序和連接方法以及使用什么樣的存取方法。在計(jì)劃優(yōu)化的處理過程中,經(jīng)常會(huì)碰到有多條存取路徑可選的情況,這時(shí)需要通過優(yōu)化計(jì)算選取一條路徑。在關(guān)系型數(shù)據(jù)庫(kù)的查詢中,表的連接次序的不同是執(zhí)行計(jì)劃多樣性的一個(gè)重要原因,優(yōu)化器必須能夠通過一定的算法確定一個(gè)好的連接的次序,這一優(yōu)化問題巳經(jīng)被證明是一個(gè)NP問題。根據(jù)選擇存取路徑所基于的原則的不同,可以把査詢優(yōu)化分為兩種類型基于規(guī)則的查詢優(yōu)化首先根據(jù)經(jīng)驗(yàn)給每個(gè)存取路徑確定一個(gè)優(yōu)先級(jí),當(dāng)有多條路徑可以選擇的時(shí)候,優(yōu)化器根據(jù)優(yōu)先級(jí)來(lái)選擇存取路徑,優(yōu)先級(jí)高的路徑被選定作為査詢的執(zhí)行路徑?;诖鷥r(jià)的査詢優(yōu)化先估算出各個(gè)存取路徑的代價(jià),然后選擇出一個(gè)代價(jià)最小的路徑。當(dāng)前該類査詢優(yōu)化算法大致可分為三種l.枚舉算法,最典型的枚舉算法是基于動(dòng)態(tài)規(guī)劃(DynamicProgramming,DP)的。如果查詢語(yǔ)句符合標(biāo)準(zhǔn)SQL-92,中等復(fù)雜程度,并且數(shù)據(jù)庫(kù)中只使用了簡(jiǎn)單合乎規(guī)范的查詢執(zhí)行技術(shù),則DP算法是有效的。當(dāng)査詢涉及許多表,或新的査詢優(yōu)化和執(zhí)行技術(shù)需要集成在系統(tǒng)中以在分布式和異類編程環(huán)境中優(yōu)化查詢。査詢優(yōu)化過程的搜索空間需求非常大,DP算法會(huì)因?yàn)槠涓叨葟?fù)雜性而變的不可行;2.啟發(fā)式算法,如貪婪算法、KBZ算法和AB算法等;3.智能優(yōu)化算法,如遺傳算法(GeneticAlgotithm,GA)、粒子群算法(ParticleSwarmOptimizer,PS0)等。由于查詢優(yōu)化的NP難性質(zhì),智能優(yōu)化算法的隨機(jī)性和自治性使其成為空間搜索的有力工具,是數(shù)據(jù)庫(kù)查詢優(yōu)化的一個(gè)新的重要研究方向。當(dāng)優(yōu)化問題的規(guī)模較大、搜索空間變得復(fù)雜時(shí),多數(shù)智能算法常??梢院芸斓卣业浇鼉?yōu)解,但由于算法擇優(yōu)保留的搜索機(jī)制,以及后期變異、交叉等操作對(duì)最優(yōu)解構(gòu)成成分的破壞,算法在近優(yōu)解附近振蕩,卻很長(zhǎng)時(shí)間內(nèi)無(wú)法到達(dá)最優(yōu)解,或限于局部極值無(wú)法進(jìn)行更廣范圍的搜索。而且由于算法參數(shù)往往憑經(jīng)驗(yàn)設(shè)定,沒有有效的選取機(jī)制,使得算法在求解實(shí)際優(yōu)化問題的性能受到了很大限制。因此,需要對(duì)智能算法進(jìn)行改進(jìn)或?qū)で笮碌乃阉鳈C(jī)制,提高其搜索能力和査詢優(yōu)化效率。
發(fā)明內(nèi)容本發(fā)明的目的是針對(duì)目前査詢優(yōu)化問題執(zhí)行計(jì)劃空間大、搜索時(shí)間長(zhǎng)等問題,以及現(xiàn)有智能優(yōu)化算法搜索機(jī)制和效率的不足,提出一種基于極值優(yōu)化的査詢優(yōu)化方法,算法參數(shù)具有最佳取值依據(jù),并在迭代過程中逐步降低優(yōu)化問題的規(guī)模,比其他智能優(yōu)化算法如GA/PSO有更大的優(yōu)越性。在自然界中,當(dāng)最無(wú)效的元素被選擇性地驅(qū)使于消亡,就經(jīng)常會(huì)出現(xiàn)高度復(fù)雜的結(jié)構(gòu)。極值過程即是指在系統(tǒng)的演變過程中不斷地清除適應(yīng)性最差的元素,是自組織臨界(Self-OrganizedCriticality,SOC)模型通常依賴的過程原則。受自然界中自組織過程的啟發(fā),Boettcher等設(shè)計(jì)了極值優(yōu)化算法(ExtremalOptimization,E0)。不同于遺傳算法等繁殖優(yōu)解的操作方式,極值優(yōu)化算法不斷以冪函數(shù)概率Aoc;T'選擇適應(yīng)性較差的變量進(jìn)行變異(其中A為變量按適應(yīng)度的排序號(hào),r為指定參數(shù),并有其一般估計(jì)公式r。p,sl+4/lnn—oo),n為變量個(gè)數(shù)),逐步清除構(gòu)成解的較差成分,從而很快地靠近近優(yōu)解,并具有很強(qiáng)的跳出局部最優(yōu)解的能力。對(duì)于一般算法難以求解的某些NP難問題,極值優(yōu)化算法也具有較好的性能,是一種新型的仿生搜索算法。但是極值優(yōu)化算法采用單解迭代,其搜索能力受到一定限制,為此設(shè)計(jì)了基于群體操作的極值進(jìn)化算法。并為了避免算法后期變異對(duì)最優(yōu)解構(gòu)成成分的破壞,在種群趨于穩(wěn)定時(shí)將近優(yōu)解中相同的構(gòu)成進(jìn)行固定,既保證了優(yōu)解模式不被破壞,又降低了算法運(yùn)行過程中實(shí)際優(yōu)化問題的規(guī)模,提高了優(yōu)化效率。本發(fā)明方法具體如下步驟一選擇査詢優(yōu)化模型;步驟二加載數(shù)據(jù)庫(kù)中的統(tǒng)計(jì)信息,形成兩兩表連接的成本參數(shù);步驟三定義變量適應(yīng)度和解的適應(yīng)度,設(shè)置參數(shù);步驟四算法種群初始化,定義變量的變異規(guī)則;步驟五內(nèi)層迭代對(duì)每個(gè)解,按定義的變異規(guī)則進(jìn)行更新,根據(jù)變量適應(yīng)度值由小到大將變量排序,具有相同X值的變量隨機(jī)排序,形成等級(jí)排列;計(jì)算解對(duì)應(yīng)的目標(biāo)函數(shù)值,按等級(jí)的分布概率函數(shù)選取要變異的變量,接受更新;步驟六判斷種群是否趨于穩(wěn)定;若是,執(zhí)行步驟七,否則返回執(zhí)行步驟五;步驟七外層迭代比較種群中的解,固定相同部分,形成新的變量和種群,執(zhí)行步驟五;步驟八若外層迭代過程中最佳個(gè)體的目標(biāo)函數(shù)是否無(wú)明顯改變,將最優(yōu)個(gè)體所表示的執(zhí)行計(jì)劃方案作為優(yōu)化結(jié)果輸出。流程如附圖所示。本發(fā)明方法中采用兩層循環(huán)迭代,內(nèi)層對(duì)每個(gè)個(gè)體施行極值優(yōu)化,外層固定優(yōu)解構(gòu)成成分后減少變量個(gè)數(shù),繼續(xù)進(jìn)行下一輪內(nèi)層循環(huán)。從而減小單層循環(huán)后期對(duì)優(yōu)解成分的破壞,并降低優(yōu)化問題規(guī)模,提高優(yōu)化速度和解的質(zhì)量。附圖是本發(fā)明的流程示意屈。具體實(shí)施例方式基于本發(fā)明方法開發(fā)了原型系統(tǒng),該系統(tǒng)包括統(tǒng)計(jì)信息接口模塊,以下是對(duì)本發(fā)明的具體實(shí)施作進(jìn)一步的描述步驟一選擇査詢優(yōu)化模型。如選擇左深樹模型,每一棵完成査詢的左深連接樹被看作一個(gè)個(gè)體,個(gè)體編碼采用表和表之間的連接,執(zhí)行時(shí)從左到右,用前面的中間結(jié)果和后面關(guān)系進(jìn)行連接,直至無(wú)關(guān)系。如此査詢優(yōu)化問題可以看作開環(huán)TSP問題(TravelingSalesmanProblem),關(guān)系看作城市,關(guān)系和關(guān)系之間的連接算看作一個(gè)城市到另一個(gè)城市之間的距離或其它成本。步驟二加載數(shù)據(jù)庫(kù)中表的統(tǒng)計(jì)信息,形成表之間連接的成本參數(shù);步驟三定義變量適應(yīng)度,給出解的目標(biāo)函數(shù),設(shè)置選擇概率參數(shù)r;定義變量適應(yīng)度為義'=3;定義解的目標(biāo)函數(shù)為查詢中表的連接總的成本開銷;根據(jù)冪率選擇函數(shù)r。p,l+4/ln"("—co),計(jì)算選擇概率參數(shù)r的最佳取值。步驟四算法種群初始化,定義變量的變異規(guī)則;初始化隨機(jī)均勻選擇系統(tǒng)的M/m個(gè)狀態(tài)作為初始群體;定義每個(gè)變量的適應(yīng)度、(y-i,2,…,");變異規(guī)則對(duì)TSP路徑的調(diào)整,采用單點(diǎn)調(diào)整策略,根據(jù)冪函數(shù)概率選中一個(gè)節(jié)點(diǎn)改變其連接,可以避免兩點(diǎn)交叉策略破壞較好解的可能。將相同的路徑連接片斷作為一個(gè)城市點(diǎn),在路徑的調(diào)整中保持中間連接不斷。首先定義城市點(diǎn)的連接方法選擇一個(gè)調(diào)整點(diǎn)c,切斷該點(diǎn)的兩個(gè)連接邊中的一個(gè),如C-a,選擇另外的一個(gè)節(jié)點(diǎn)6與點(diǎn)C重新連接,這時(shí)出現(xiàn)一個(gè)只有一個(gè)連接邊的點(diǎn)",稱為"單連接點(diǎn)",和一個(gè)有三個(gè)連接邊的點(diǎn)6,稱為"三連接點(diǎn)"。在一條路徑中,按各點(diǎn)的排列順序,排在前的點(diǎn)的位置為"前",排在后的點(diǎn)的位置為"后",路徑中處在某兩點(diǎn)之間的點(diǎn)的位置為"中";一點(diǎn)與該點(diǎn)之前的點(diǎn)的連接稱為"前連接",與該點(diǎn)之后的點(diǎn)的連接稱為"后連接"。由調(diào)整點(diǎn)與"單連接點(diǎn)"和"三連接點(diǎn)"的相對(duì)位置確定"三連接點(diǎn)"的要切斷的連接,經(jīng)過分析,要保證新解的可行性,不產(chǎn)生截?cái)嗷芈泛凸铝Ⅻc(diǎn),要切斷的"三連接點(diǎn)"的連接的選擇是唯一的,連接規(guī)則見表1,下面以規(guī)則1為例進(jìn)行說(shuō)明。表1三連接點(diǎn)的連接策略<table>tableseeoriginaldocumentpage6</column></row><table>策略h若按事先規(guī)定的回路方向,三點(diǎn)在路徑中的排列順序?yàn)?三連接點(diǎn)"一"單連接點(diǎn)"一"調(diào)整點(diǎn)","調(diào)整點(diǎn)"被切斷的連接為"前連接",則"三連接點(diǎn)"被切斷"前連接","三連接點(diǎn)"的"前"連接點(diǎn)與"單連接點(diǎn)"重新連接。說(shuō)明假定在一條路徑中,每個(gè)點(diǎn)有且只有兩個(gè)連接。若選擇一段路徑A6-fl-C,調(diào)整點(diǎn)C,切斷其兩個(gè)連接中的"前連接""-C,選擇另外的一個(gè)節(jié)點(diǎn)6與點(diǎn)C重新連接,則"為"單連接點(diǎn)",6為"三連接點(diǎn)"。則三點(diǎn)的位置排序?yàn)?-"-C,若切斷6的"后連接"6w,則形成一條路徑和一個(gè)孤立點(diǎn)a,若切斷6的"前連接"c/-&,將與"連接,則重新構(gòu)成一條路,連接片段變成"-6-c。步驟五內(nèi)層迭代。(l)對(duì)每個(gè)解,按定義的變異規(guī)則進(jìn)行更新,根據(jù)變量適應(yīng)度值X由小到大將變量排序,具有相同X值的變量隨機(jī)排序,形成等級(jí)*=1Ut=min{X}),*=2,..',*="(Xt-max(X",)的排列;(2)計(jì)算解對(duì)應(yīng)的目標(biāo)函數(shù)值,按等級(jí)A:的分布概率函數(shù)尸(A)ocA-T選取要變異^變量,接受更新。步驟六判斷種群是否趨于穩(wěn)定。若連續(xù)IO次內(nèi)層迭代后的種群中最好解的目標(biāo)函數(shù)無(wú)明顯改善,執(zhí)行步驟七,否則返回執(zhí)行步驟五;步驟七外層迭代。比較種群中的解,固定相同部分,形成新的變量和種群,執(zhí)行步驟五;以10城市TSP問題的三個(gè)解簡(jiǎn)單說(shuō)明算法中新變量的產(chǎn)生機(jī)制。假設(shè)三個(gè)解的城市連接即三條路徑分別為<formula>formulaseeoriginaldocumentpage7</formula>三個(gè)解的相同連接部分為3-8,2-9,4-5;從而新解中將連接片段3-8,2-9,4-5分別作為一個(gè)城市在路徑中連接,隨機(jī)排列3-8,2-9,4-5與剩余的城市,產(chǎn)生一個(gè)新解1-6-3-8-2-9-10-4-5-7。按式,《l+4/ln"調(diào)整參數(shù)z",進(jìn)行再優(yōu)化。步驟八若連續(xù)三次外層迭代的最佳個(gè)體的目標(biāo)函數(shù)無(wú)明顯改變,將最優(yōu)個(gè)體所表示的執(zhí)行計(jì)劃方案作為優(yōu)化結(jié)果輸出。本發(fā)明方法具有可行性和高效性,能夠解決查詢優(yōu)化問題,從而更好地協(xié)助數(shù)據(jù)庫(kù)系統(tǒng)的査詢操作。特別是極值優(yōu)化算法借鑒了自然界去除劣勢(shì)元素的思想,有效避免了陷于局部極值的危險(xiǎn),同時(shí)本發(fā)明能夠逐步地降低優(yōu)化的規(guī)模和復(fù)雜度,有效提高了査詢優(yōu)化的效率,為査詢優(yōu)化提供了新的方法。權(quán)利要求1.一種基于極值優(yōu)化的數(shù)據(jù)庫(kù)查詢優(yōu)化方法,其特征在于它通過如下步驟實(shí)現(xiàn)(1)選擇查詢優(yōu)化模型;(02)加載數(shù)據(jù)庫(kù)中的統(tǒng)計(jì)信息,形成兩兩表連接的成本參數(shù);(3)定義變量適應(yīng)度和解的適應(yīng)度,設(shè)置參數(shù);(4)算法種群初始化,定義變量的變異規(guī)則;(5)內(nèi)層迭代按定義的變異規(guī)則對(duì)每個(gè)解進(jìn)行更新,根據(jù)變量適應(yīng)度值由小到大將變量排序,具有相同適應(yīng)度值的變量隨機(jī)排序,形成等級(jí)排列;計(jì)算解對(duì)應(yīng)的目標(biāo)函數(shù)值,按等級(jí)的分布概率函數(shù)選取要變異的變量,接受更新;(6)判斷種群是否趨于穩(wěn)定;若是,執(zhí)行步驟(7),否則返回執(zhí)行步驟五;(7)外層迭代比較種群中的解,固定相同部分,形成新的變量和種群,執(zhí)行步驟(5);(8)若外層迭代過程中最佳個(gè)體的目標(biāo)函數(shù)是否無(wú)明顯改變,將最優(yōu)個(gè)體所表示的執(zhí)行計(jì)劃方案作為優(yōu)化結(jié)果輸出。2.根據(jù)權(quán)力要求1所述的基于極值優(yōu)化的數(shù)據(jù)庫(kù)査詢優(yōu)化方法,其特征在于步驟(l)和步驟(3)中將查詢優(yōu)化模型轉(zhuǎn)化,根據(jù)問題的開環(huán)特征定義變量適應(yīng)度為《=3/('+/'),發(fā)生變異的變量選擇概率為、,"+4/lnn"—oo),避免了參數(shù)調(diào)整耗費(fèi)大量計(jì)算時(shí)間。3.根據(jù)權(quán)力要求1所述的基于極值優(yōu)化的數(shù)據(jù)庫(kù)査詢優(yōu)化方法,其特征在于步驟(4)中根據(jù)變量的變異規(guī)則定義,首先定義了路徑中結(jié)點(diǎn)的連接前后順序"前"、"中"、"后"、"連接點(diǎn)"等術(shù)語(yǔ),推導(dǎo)了4個(gè)連接調(diào)整策略,避免了不可行個(gè)體解的出現(xiàn)。如策略l:若三點(diǎn)在路徑中的排列順序?yàn)?三連接點(diǎn)"一"單連接點(diǎn)"一"調(diào)整點(diǎn)","調(diào)整點(diǎn)"被切斷的連接為"前連接",則"三連接點(diǎn)"被切斷"前連接","三連接點(diǎn)"的"前"連接點(diǎn)與"單連接點(diǎn)"重新連接。4.根據(jù)變量適應(yīng)度值、由小到大將變量排序,具有相同X值的變量隨機(jī)排序,形成等級(jí)*=1(X:=min{X,}),*=2,,A:="at二max(XJ)的排列,根據(jù)冪率函數(shù)的分布特點(diǎn),排列可以只進(jìn)行到第5位即可。5.根據(jù)權(quán)力要求1所述的基于極值優(yōu)化的數(shù)據(jù)庫(kù)査詢優(yōu)化方法,其特征在于步驟(5)和步驟(7)采用多個(gè)體解迭代的群體極值優(yōu)化算法,并將種群中個(gè)體的相同連接固定后形成新的變量和種群,逐步減少了變量個(gè)數(shù),降低了實(shí)際求解問題的規(guī)模。全文摘要一種信息技術(shù)和數(shù)據(jù)庫(kù)
技術(shù)領(lǐng)域:
的基于極值優(yōu)化的數(shù)據(jù)庫(kù)查詢優(yōu)化方法,主要用于解決關(guān)系數(shù)據(jù)庫(kù)查詢中的連接優(yōu)化問題。技術(shù)方案要點(diǎn)如下1.加載數(shù)據(jù)庫(kù)統(tǒng)計(jì)信息,選擇查詢優(yōu)化模型;2.采用兩層循環(huán)迭代的新型優(yōu)化算法,內(nèi)層的種群個(gè)體根據(jù)極值過程原則進(jìn)行迭代,外層循環(huán)中個(gè)體之間的相同連接被固定,減小變量數(shù)量后形成內(nèi)層循環(huán)的種群;3.種群適應(yīng)度的計(jì)算采用連接費(fèi)用定義λ<sub>i</sub>=3/(α<sub>i</sub>+β<sub>i</sub>),選擇概率參數(shù)采用公式τ≈1+4/lnn,個(gè)體目標(biāo)函數(shù)通過對(duì)每個(gè)個(gè)體所表示的執(zhí)行計(jì)劃方案的分析計(jì)算。本發(fā)明降低了個(gè)體適應(yīng)度函數(shù)的計(jì)算量,在循環(huán)迭代中逐步減少變量的個(gè)數(shù),降低了實(shí)際計(jì)算的規(guī)模,有效提高了查詢優(yōu)化的效率。文檔編號(hào)G06F17/30GK101576880SQ20081001595公開日2009年11月11日申請(qǐng)日期2008年5月6日優(yōu)先權(quán)日2008年5月6日發(fā)明者劉麗梅,王云爭(zhēng),恒錢,高永超申請(qǐng)人:山東省標(biāo)準(zhǔn)化研究院