[發(fā)明專利]一種數(shù)據(jù)庫查詢優(yōu)化方法及系統(tǒng)有效
| 申請?zhí)枺?/td> | 201610058835.1 | 申請日: | 2016-01-28 |
| 公開(公告)號: | CN105718593B | 公開(公告)日: | 2019-04-16 |
| 發(fā)明(設(shè)計)人: | 于繁華;趙東;戴金波;趙宏偉;李瑞;楊威 | 申請(專利權(quán))人: | 長春師范大學(xué) |
| 主分類號: | G06F16/2453 | 分類號: | G06F16/2453 |
| 代理公司: | 北京德崇智捷知識產(chǎn)權(quán)代理有限公司 11467 | 代理人: | 王金雙 |
| 地址: | 130032 吉林省長春市吉北*** | 國省代碼: | 吉林;22 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 數(shù)據(jù)庫 查詢 優(yōu)化 方法 系統(tǒng) | ||
一種數(shù)據(jù)庫查詢優(yōu)化方法及系統(tǒng),該方法包括:將查詢語句字符串用查詢內(nèi)部表示結(jié)構(gòu)表示;對所述查詢內(nèi)部表示進(jìn)行特性分析,生成在語義上等價的查詢內(nèi)部表示;對所述在語義上等價的查詢內(nèi)部表示進(jìn)行語法分析,生成語義上的數(shù)據(jù)庫內(nèi)部表示;將語義上的數(shù)據(jù)庫內(nèi)部表示進(jìn)行查詢優(yōu)化處理,生成最終的執(zhí)行計劃;對最終的執(zhí)行計劃進(jìn)行解釋和執(zhí)行,生成查詢結(jié)果或錯誤信息。本發(fā)明的方法及系統(tǒng),可以有效的避免單靠計劃優(yōu)化的優(yōu)化方法所帶來的局限性,且減少查詢的總資源占用和總時間的消耗,提供數(shù)據(jù)庫查詢效率。
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)庫領(lǐng)域,尤其涉及一種數(shù)據(jù)庫查詢優(yōu)化方法及系統(tǒng)。
背景技術(shù)
數(shù)據(jù)庫系統(tǒng)對用戶隱藏數(shù)據(jù)結(jié)構(gòu)細(xì)節(jié),提供一個與數(shù)據(jù)無關(guān)的接口,用戶只需對查詢行為進(jìn)行簡單描述,無須關(guān)注獲取這些數(shù)據(jù)的內(nèi)部過程。查詢優(yōu)化就是在查詢執(zhí)行引擎生成一個執(zhí)行策略的過程中,盡量使查詢的總資源占用和總時間消耗極小化。數(shù)據(jù)庫管理系統(tǒng)可以內(nèi)置一個查詢優(yōu)化器,用于控制和加快查詢執(zhí)行和數(shù)據(jù)傳輸?shù)倪^程,當(dāng)用戶查詢表達(dá)經(jīng)過查詢處理器的語法分析處理后,查詢優(yōu)化器為查詢選擇一種適當(dāng)?shù)臄?shù)據(jù)存取策略作為輸出。然而,查詢優(yōu)化一直是個復(fù)雜的問題,特別是對海量數(shù)據(jù)的查詢。
數(shù)據(jù)庫系統(tǒng)的一個主要功能是它能夠使得用戶通過查詢語言訪問和修改數(shù)據(jù)。查詢是數(shù)據(jù)庫系統(tǒng)中最基本、最常用的一種操作,因此,查詢是否具備較高的執(zhí)行效率和快捷的反應(yīng)速度,己成為數(shù)據(jù)庫用戶和設(shè)計者極其關(guān)注的問題。為了提高數(shù)據(jù)庫系統(tǒng)的性能,對查詢進(jìn)行優(yōu)化是必不可少的。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種數(shù)據(jù)庫查詢優(yōu)化方法及系統(tǒng),能夠取得更好的優(yōu)化效果,提高查詢效率。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的數(shù)據(jù)庫查詢優(yōu)化方法,包括以下步驟:
1)將查詢語句字符串用查詢內(nèi)部表示結(jié)構(gòu)表示;
2)對所述查詢內(nèi)部表示進(jìn)行特性分析,生成在語義上等價的查詢內(nèi)部表示;
3)對所述在語義上等價的查詢內(nèi)部表示進(jìn)行語法分析,生成語義上的數(shù)據(jù)庫內(nèi)部表示;
4)將語義上的數(shù)據(jù)庫內(nèi)部表示進(jìn)行查詢優(yōu)化處理,生成最終的執(zhí)行計劃;
5)對最終的執(zhí)行計劃進(jìn)行解釋和執(zhí)行,生成查詢結(jié)果或錯誤信息。
進(jìn)一步地,所述步驟1)是將查詢語句字符串分成多個詞法單元并用查詢內(nèi)部表示結(jié)構(gòu)表示。
進(jìn)一步地,所述步驟2)是根據(jù)查詢重寫規(guī)則對所述查詢內(nèi)部表示進(jìn)行特性分析,生成在語義上等價的查詢內(nèi)部表示。
進(jìn)一步地,所述查詢重寫規(guī)則包括;
a)將過程性查詢轉(zhuǎn)換成描述性查詢;
b)將效率較低的謂詞轉(zhuǎn)換為等價的效率高的謂詞;
c)將查詢語句轉(zhuǎn)換成效率高的語句;
d)將查詢轉(zhuǎn)換為單個選擇語句。
進(jìn)一步地,所述步驟3)進(jìn)一步包括以下步驟:對所述在語義上等價的查詢內(nèi)部表示進(jìn)行語法分析及語義檢查,如果語法是正確的,將生成一個語法樹,然后再對該語法樹進(jìn)行檢查;如果所述在語義上等價的查詢內(nèi)部表示涉及到的表、視圖以及相關(guān)屬性是合法的,則生成一個語義上的數(shù)據(jù)庫內(nèi)部表示。
進(jìn)一步地,所述步驟4)進(jìn)一步包括以下步驟:將查詢的語義上的數(shù)據(jù)庫內(nèi)部表示轉(zhuǎn)化為查詢可執(zhí)行的內(nèi)部表示形式;對所述查詢可執(zhí)行的內(nèi)部表示進(jìn)行邏輯關(guān)系的優(yōu)化,得到查詢指令序列;執(zhí)行操作的優(yōu)化;執(zhí)行操作間關(guān)系的優(yōu)化,生成最終的執(zhí)行計劃。
更進(jìn)一步地,所述邏輯關(guān)系的優(yōu)化是根據(jù)表及其選擇條件,選擇先對哪個表作連接,通過條件類型及相關(guān)屬性決定其關(guān)系代數(shù)運(yùn)算的操作;所述執(zhí)行操作的優(yōu)化是針對操作確定其最佳執(zhí)行效果;所述操作間關(guān)系的優(yōu)化是針對不同的操作序列,進(jìn)行等價的重新組合。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于長春師范大學(xué),未經(jīng)長春師范大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610058835.1/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲方法、裝置、電子設(shè)備及存儲介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置





