專利名稱:一種用于優(yōu)化數(shù)據(jù)庫查詢計劃的系統(tǒng)及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)庫技術(shù),尤其涉及一種用于優(yōu)化數(shù)據(jù)庫查詢計劃的系統(tǒng)及其方法。
背景技術(shù):
在當(dāng)前的計算機應(yīng)用中,尤其是在如圖書館、金融業(yè)等方面,各種數(shù)據(jù)量飛速增長。面對海量數(shù)據(jù),如何在數(shù)據(jù)庫中用最短時間找到最優(yōu)結(jié)果是數(shù)據(jù)查詢的重點。
在關(guān)系數(shù)據(jù)庫系統(tǒng)中,優(yōu)化器是一個構(gòu)建查詢計劃的模塊,主要用于確定查詢?nèi)绾伪粓?zhí)行,其中查詢基數(shù)估計則在查詢優(yōu)化過程中扮演了重要的角色不準(zhǔn)確的基數(shù)估計會導(dǎo)致次優(yōu)的計劃被選中,次優(yōu)和最優(yōu)的計劃之間執(zhí)行效率可能會相差幾個數(shù)量級。由于數(shù)據(jù)庫中的數(shù)據(jù)量較大,查詢過程對數(shù)據(jù)本身進行工作,會導(dǎo)致查詢時間過長、查詢效率低下,因此,一般通過中間視圖如直方圖等統(tǒng)計數(shù)據(jù),用于描述數(shù)據(jù)的分布信息,避免查詢過程中訪問到數(shù)據(jù)本身。在數(shù)據(jù)庫記錄刷新的同時,持續(xù)更新的統(tǒng)計數(shù)據(jù)被用于優(yōu)化查詢計劃;但是某些存儲數(shù)據(jù)的升序和降序操作常常比統(tǒng)計數(shù)據(jù)更新的快,此時查詢內(nèi)容超出已知范圍之外,即查詢內(nèi)容的分布信息還未更新到統(tǒng)計數(shù)據(jù)中,進行查詢?nèi)蝿?wù)時因基數(shù)估計的不準(zhǔn)確使得查詢變得低效。發(fā)明內(nèi)容
本發(fā)明為克服上述的不足之處,目的在于提供一種用于優(yōu)化數(shù)據(jù)庫查詢計劃的系統(tǒng)及其方法,通過監(jiān)測數(shù)據(jù)的升序或降序特性,針對這些特性發(fā)起短小、基于中間過程的查詢,從而保證查詢計劃更加可靠、準(zhǔn)確、高效地執(zhí)行。
本發(fā)明是通過以下技術(shù)方案達到上述目的一種用于優(yōu)化數(shù)據(jù)庫查詢計劃的系統(tǒng),包括數(shù)據(jù)庫、統(tǒng)計數(shù)據(jù)庫、查詢優(yōu)化器、查詢組件、查詢計劃優(yōu)化組件;所述的查詢計劃優(yōu)化組件包括監(jiān)聽組件、調(diào)整組件;所述的監(jiān)聽組件檢測數(shù)據(jù)庫的變化情況,調(diào)整組件根據(jù)監(jiān)聽組件的反饋信息提交一個基于中間過程的查詢完成統(tǒng)計數(shù)據(jù)庫的更新,查詢優(yōu)化器根據(jù)統(tǒng)計數(shù)據(jù)庫構(gòu)建查詢計劃并通過查詢組件完成查詢計劃。
作為優(yōu)選,所述的監(jiān)聽組件包括升序監(jiān)聽組件、降序監(jiān)聽組件。
作為優(yōu)選,所述的調(diào)整組件包括上限監(jiān)測器、下限監(jiān)測器、統(tǒng)計調(diào)節(jié)器。
一種用于優(yōu)化數(shù)據(jù)庫查詢計劃的方法,包括以下步驟
I)設(shè)置預(yù)定閥值最大值Pmax和預(yù)定閥值最小值Pmin,預(yù)定閥值通過操作界面進行設(shè)置;
2)監(jiān)聽組件分為升序監(jiān)聽組件和降序監(jiān)聽組件,系統(tǒng)刷新統(tǒng)計數(shù)據(jù)i+Ι次;
3)升序監(jiān)聽組件和降序監(jiān)聽組件分別對刷新后的統(tǒng)計數(shù)據(jù)和舊的統(tǒng)計數(shù)據(jù)進行比較,計算第i次刷新統(tǒng)計數(shù)據(jù)時統(tǒng)計數(shù)據(jù)的表的基數(shù)TCi、統(tǒng)計數(shù)據(jù)變化的數(shù)量Mi、統(tǒng)計數(shù)據(jù)最大列的值Cmaxi、統(tǒng)計數(shù)據(jù)最小列的值Cmini ;
4)計算閥值大小
(41)比較第i+Ι次的統(tǒng)計數(shù)據(jù)和第i次的統(tǒng)計數(shù)據(jù),當(dāng)?shù)趇+Ι次的列數(shù)量G(i+1) 大于Cmaxi,最大的閥值確定為
權(quán)利要求
1.一種用于優(yōu)化數(shù)據(jù)庫查詢計劃的系統(tǒng),其特征在于包括數(shù)據(jù)庫、統(tǒng)計數(shù)據(jù)庫、查詢優(yōu)化器、查詢組件、查詢計劃優(yōu)化組件;所述的查詢計劃優(yōu)化組件包括監(jiān)聽組件、調(diào)整組件;所述的監(jiān)聽組件檢測數(shù)據(jù)庫的變化情況,調(diào)整組件根據(jù)監(jiān)聽組件的反饋信息提交一個基于中間過程的查詢完成統(tǒng)計數(shù)據(jù)庫的更新,查詢優(yōu)化器根據(jù)統(tǒng)計數(shù)據(jù)庫構(gòu)建查詢計劃并通過查詢組件完成查詢計劃。
2.根據(jù)權(quán)利要求I所述的一種用于優(yōu)化數(shù)據(jù)庫查詢計劃的系統(tǒng),其特征在于所述的監(jiān)聽組件包括升序監(jiān)聽組件、降序監(jiān)聽組件。
3.根據(jù)權(quán)利要求2所述的一種用于優(yōu)化數(shù)據(jù)庫查詢計劃的系統(tǒng),其特征在于所述的調(diào)整組件包括上限監(jiān)測器、下限監(jiān)測器、統(tǒng)計調(diào)節(jié)器。
4.一種用于優(yōu)化數(shù)據(jù)庫查詢計劃的方法,其特征在于包括以下步驟 1)設(shè)置預(yù)定閥值最大值Pmax和預(yù)定閥值最小值Pmin,預(yù)定閥值通過操作界面進行設(shè)置; 2)監(jiān)聽組件分為升序監(jiān)聽組件和降序監(jiān)聽組件,系統(tǒng)刷新統(tǒng)計數(shù)據(jù)i+Ι次; 3)升序監(jiān)聽組件和降序監(jiān)聽組件分別對刷新后的統(tǒng)計數(shù)據(jù)和舊的統(tǒng)計數(shù)據(jù)進行比較,計算第i次刷新統(tǒng)計數(shù)據(jù)時統(tǒng)計數(shù)據(jù)的表的基數(shù)TCi、統(tǒng)計數(shù)據(jù)變化的數(shù)量Mi、統(tǒng)計數(shù)據(jù)最大列的值Cmaxi、統(tǒng)計數(shù)據(jù)最小列的值Cmini ; 4)計算閥值大小 (41)比較第i+Ι次的統(tǒng)計數(shù)據(jù)和第i次的統(tǒng)計數(shù)據(jù),當(dāng)?shù)趇+Ι次的列數(shù)量G(i+1)大于Cmaxi,最大的閥值確定為
全文摘要
本發(fā)明涉及數(shù)據(jù)庫技術(shù),尤其涉及一種用于優(yōu)化數(shù)據(jù)庫查詢計劃的系統(tǒng)及其方法,包括數(shù)據(jù)庫、統(tǒng)計數(shù)據(jù)庫、查詢優(yōu)化器、查詢組件、查詢計劃優(yōu)化組件;所述的查詢計劃優(yōu)化組件包括監(jiān)聽組件、調(diào)整組件;所述的監(jiān)聽組件檢測數(shù)據(jù)庫的變化情況,調(diào)整組件根據(jù)監(jiān)聽組件的反饋信息提交一個基于中間過程的查詢完成統(tǒng)計數(shù)據(jù)庫的更新,查詢優(yōu)化器根據(jù)統(tǒng)計數(shù)據(jù)庫構(gòu)建查詢計劃并通過查詢組件完成查詢計劃。本發(fā)明的有益效果在于1、降低執(zhí)行計劃的成本,避免耗時的數(shù)據(jù)掃描;2、能夠及時更新統(tǒng)計數(shù)據(jù),防止查詢內(nèi)容在已知范圍之外,提高基數(shù)估計的準(zhǔn)確度,進而提高查詢的效率;3、能夠使最優(yōu)的查詢計劃被執(zhí)行,保證查詢計劃的可靠性、準(zhǔn)確性、高效性。
文檔編號G06F17/30GK102930003SQ201210420638
公開日2013年2月13日 申請日期2012年10月24日 優(yōu)先權(quán)日2012年10月24日
發(fā)明者陳明新, 楊俊杰, 王斌 申請人:浙江圖訊科技有限公司