[發(fā)明專利]用于捕獲低成本查詢計(jì)劃的基于學(xué)習(xí)的查詢計(jì)劃緩存在審
| 申請(qǐng)?zhí)枺?/td> | 201980096780.5 | 申請(qǐng)日: | 2019-05-24 |
| 公開(kāi)(公告)號(hào): | CN114041128A | 公開(kāi)(公告)日: | 2022-02-11 |
| 發(fā)明(設(shè)計(jì))人: | 胡榮中;艾哈邁德·加扎爾;張明義 | 申請(qǐng)(專利權(quán))人: | 華為技術(shù)有限公司 |
| 主分類號(hào): | G06F16/2453 | 分類號(hào): | G06F16/2453;G06F16/2452 |
| 代理公司: | 暫無(wú)信息 | 代理人: | 暫無(wú)信息 |
| 地址: | 518129 廣東*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說(shuō)明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 用于 捕獲 低成本 查詢 計(jì)劃 基于 學(xué)習(xí) 緩存 | ||
提供了一種查詢處理設(shè)備,包括耦合到通信接口的處理器和查詢存儲(chǔ)器。所述處理器接收處于訓(xùn)練模式下的查詢的當(dāng)前提交、存儲(chǔ)的先前執(zhí)行計(jì)劃和存儲(chǔ)的所述先前執(zhí)行計(jì)劃的統(tǒng)計(jì)信息。所述處理器為所述查詢生成當(dāng)前執(zhí)行計(jì)劃,執(zhí)行所述當(dāng)前執(zhí)行計(jì)劃并收集統(tǒng)計(jì)信息。所述處理器將所述當(dāng)前執(zhí)行計(jì)劃和所述統(tǒng)計(jì)信息存儲(chǔ)在所述查詢存儲(chǔ)器中,并根據(jù)所述當(dāng)前執(zhí)行計(jì)劃確定所述查詢不處于所述訓(xùn)練模式。所述處理器從多個(gè)存儲(chǔ)的用于所述查詢的執(zhí)行計(jì)劃中選擇一個(gè)用于所述查詢的執(zhí)行計(jì)劃,包括所述先前執(zhí)行計(jì)劃和所述當(dāng)前執(zhí)行計(jì)劃,并將所述選擇的用于所述查詢的執(zhí)行計(jì)劃與指示所述查詢不處于所述訓(xùn)練模式的指示一起存儲(chǔ)在所述查詢存儲(chǔ)器中。
相關(guān)申請(qǐng)的交叉引用
無(wú)
技術(shù)領(lǐng)域
本發(fā)明涉及一種數(shù)據(jù)庫(kù)管理系統(tǒng)(database management system,DBMS)中的查詢處理,具體涉及一種DBMS,所述DBMS基于查詢的執(zhí)行時(shí)間來(lái)緩存用于查詢的執(zhí)行計(jì)劃以學(xué)習(xí)相對(duì)低成本的用于查詢的執(zhí)行計(jì)劃。
背景技術(shù)
DBMS中的查詢處理通常涉及兩個(gè)不同的階段。第一階段或編譯階段檢查查詢的語(yǔ)法和語(yǔ)義。該階段還包括使用基于物化視圖、索引和基于成本的優(yōu)化的查詢重寫生成執(zhí)行計(jì)劃。查詢重寫將第一查詢變換為利用物化視圖和索引的等效第二查詢。第二查詢以更低的成本產(chǎn)生與第一查詢相同的結(jié)果。物化視圖是先前執(zhí)行的查詢的緩存結(jié)果或中間結(jié)果。索引是表中選定數(shù)據(jù)列的副本,可以有效地被搜索,并且還可以包括從中復(fù)制索引的完整數(shù)據(jù)行的鏈接。除了使用緩存的物化視圖外,查詢重寫還可以根據(jù)其估計(jì)成本從等效操作中進(jìn)行選擇,組合多個(gè)操作和/或更改操作的順序。
除了使用查詢重寫外,查詢優(yōu)化方法還使用統(tǒng)計(jì)信息,包括數(shù)據(jù)大小估計(jì),以在基于成本的查詢優(yōu)化系統(tǒng)中制定更好的查詢。基于成本的優(yōu)化可以估計(jì)查詢使用的表列的統(tǒng)計(jì)信息,并基于這些估計(jì)確定待使用的特定算法以及作為查詢重寫的一部分的執(zhí)行算法的特定順序。基數(shù)是衡量數(shù)據(jù)庫(kù)特定列中數(shù)據(jù)值唯一性的度量。列具有低基數(shù)值可能表示列中有大量重復(fù)元素。基數(shù)估計(jì)包括行計(jì)數(shù)和基表(例如,數(shù)據(jù)庫(kù)列)和中間結(jié)果(例如,對(duì)基表進(jìn)行操作所產(chǎn)生的中間數(shù)據(jù))的不同值的數(shù)量。執(zhí)行每個(gè)運(yùn)算符的輸出數(shù)據(jù)量也是可能影響性能的基數(shù)值。
行計(jì)數(shù)、不同值的數(shù)量和數(shù)據(jù)大小等統(tǒng)計(jì)度量在連接排序、選擇連接方法類型以及選擇待在用于特定查詢的執(zhí)行計(jì)劃中使用的聚合方法類型等操作中起著重要作用。例如,DBMS采用兩種類型的連接算法:嵌套循環(huán)連接算法和排序合并連接算法。對(duì)于示例連接操作(JOIN(A,B)),嵌套循環(huán)連接算法將表A中的每條記錄與表B中的每條記錄進(jìn)行比較,以生成連接表,而排序合并連接算法將表A和表B分別排序,并組合排序后的表,以生成連接表。嵌套循環(huán)算法對(duì)相對(duì)較小的表更高效,而排序合并算法對(duì)相對(duì)較大的表更高效。
執(zhí)行計(jì)劃的成本可以基于由計(jì)劃的執(zhí)行產(chǎn)生的一個(gè)或多個(gè)度量(例如,最短響應(yīng)時(shí)間、最低中央處理器(central processing unit,CPU)成本、最低輸入/輸出(input/output,I/O)處理成本、最低網(wǎng)絡(luò)處理成本,或其任何適當(dāng)?shù)慕M合)。基于成本的優(yōu)化器生成的執(zhí)行計(jì)劃被饋送到第二階段,該第二階段針對(duì)數(shù)據(jù)庫(kù)對(duì)象執(zhí)行計(jì)劃并生成查詢結(jié)果。查詢處理時(shí)間是編譯和執(zhí)行時(shí)間的總和。
一些DBMS的用戶多次提交同一查詢,因?yàn)樗麄兛赡芟M_定查詢結(jié)果如何隨時(shí)間變化。例如,制造商可能想知道其每周、每天甚至每小時(shí)的銷售數(shù)據(jù)。為了最大限度地減少編譯階段的開(kāi)銷,許多DBMS將用于特定查詢的執(zhí)行計(jì)劃存儲(chǔ)在緩存中,以便當(dāng)同一查詢被多次提交時(shí),執(zhí)行計(jì)劃可以被重復(fù)使用。緩存的執(zhí)行計(jì)劃可以完全跳過(guò)編譯階段,因?yàn)榫彺娴挠?jì)劃可以被檢索并傳遞到執(zhí)行階段。但是,由于估計(jì)統(tǒng)計(jì)信息中的錯(cuò)誤和/或數(shù)據(jù)庫(kù)中的更改,緩存的計(jì)劃可能不是每個(gè)查詢實(shí)例的最佳計(jì)劃。
發(fā)明內(nèi)容
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于華為技術(shù)有限公司,未經(jīng)華為技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201980096780.5/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專利網(wǎng)。
- 帶有前處理和后處理的數(shù)據(jù)庫(kù)復(fù)合查詢系統(tǒng)及方法
- 數(shù)據(jù)庫(kù)查詢的方法和系統(tǒng)
- 查詢系統(tǒng)、查詢終端以及查詢方法
- 交易信息查詢方法、查詢裝置及查詢系統(tǒng)
- 數(shù)據(jù)查詢與結(jié)果生成方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 在RDF數(shù)據(jù)集上進(jìn)行OPTIONAL查詢的方法及存儲(chǔ)介質(zhì)
- 一種多表關(guān)聯(lián)查詢方法、裝置及設(shè)備
- 一種基于Impala的查詢方法和裝置
- 從查詢生成子查詢
- 一種基于通用查詢語(yǔ)言的查詢方法及查詢系統(tǒng)





