[發(fā)明專利]基于實踐檢驗的執(zhí)行計劃優(yōu)化的裝置及方法有效
| 申請?zhí)枺?/td> | 201110359329.3 | 申請日: | 2011-11-11 |
| 公開(公告)號: | CN102436494A | 公開(公告)日: | 2012-05-02 |
| 發(fā)明(設計)人: | 祁智苗;黃涌銘;張世榮;林瑤 | 申請(專利權)人: | 中國工商銀行股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 中科專利商標代理有限責任公司 11021 | 代理人: | 宋焰琴 |
| 地址: | 100140 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 實踐 檢驗 執(zhí)行 計劃 優(yōu)化 裝置 方法 | ||
技術領域
本發(fā)明涉及關系型數(shù)據(jù)庫的數(shù)據(jù)處理技術領域,具體涉及一種基于實踐檢驗的執(zhí)行計劃優(yōu)化的裝置及方法。
背景技術
關系型數(shù)據(jù)庫在執(zhí)行結(jié)構化查詢語言(Structured?Query?Language,SQL)語句時,可通過多種訪問路徑來獲取數(shù)據(jù)結(jié)果,例如可以通過索引掃描來獲取,也可以通過全表掃描來獲取,每一種路徑被稱為該SQL語句的一個執(zhí)行計劃。不同的執(zhí)行計劃消耗不同的系統(tǒng)資源,如消耗不同的磁盤I/0、內(nèi)存和CPU等。關系型數(shù)據(jù)庫在執(zhí)行SQL語句之前,會生成該SQL語句的多個執(zhí)行計劃,并選擇其中對系統(tǒng)資源消耗最小的執(zhí)行計劃,稱為“最優(yōu)執(zhí)行計劃”。其中,生成執(zhí)行計劃并選擇最優(yōu)執(zhí)行計劃的模塊稱為“優(yōu)化器”。如圖1所示。
傳統(tǒng)的優(yōu)化器有以下兩種:基于規(guī)則的優(yōu)化器和基于成本的優(yōu)化器。其中,基于規(guī)則的優(yōu)化器(Rule?Based?Optimizer,RBO)即預先對不同的訪問路徑(如索引掃描、全表掃描等)設定優(yōu)先級,認為優(yōu)先級別越低的訪問路徑的執(zhí)行代價越大。因此RBO會選擇優(yōu)先級別最高的訪問路徑作為最優(yōu)執(zhí)行計劃。比如當一個SQL語句的查詢條件中包含的數(shù)據(jù)列具有索引,RBO會始終認為使用索引掃描數(shù)據(jù)優(yōu)于全表掃描,如圖2所示。
這種RBO執(zhí)行計劃的選擇策略由于不考慮數(shù)據(jù)的分布、數(shù)據(jù)量大小等數(shù)據(jù)特性,也不考慮I/O、CPU及網(wǎng)絡消耗等系統(tǒng)環(huán)境,往往會選擇次優(yōu)的執(zhí)行計劃,導致系統(tǒng)性能不高。比如當全表只有少量數(shù)據(jù),通過掃描全表會比通過掃描索引訪問表數(shù)據(jù)消耗更少的I/O,執(zhí)行時間更短,但RBO仍會選擇掃描索引訪問表作為最優(yōu)的執(zhí)行計劃。
而第二種優(yōu)化器為基于成本的優(yōu)化器(Cost?Based?Optimizer,CBO),會根據(jù)SQL語句所訪問的對象屬性、索引特性、數(shù)據(jù)分布特性等多種數(shù)據(jù)庫統(tǒng)計信息,并根據(jù)這些影響因素的權重來估算這些執(zhí)行計劃可能消耗的I/O、內(nèi)存及CPU等資源成本,最終確定一個估算執(zhí)行成本最小的執(zhí)行計劃。如圖3所示。由于CBO綜合考慮了影響SQL語句執(zhí)行的多種因素,因此比基于規(guī)則的優(yōu)化方法更容易產(chǎn)生更優(yōu)的執(zhí)行計劃。
然而,CBO也存在一些不足。由于CBO預先設定的各種影響因素在成本估算中的權重值并不能真實反應實際中各類資源的消耗比例,因此CBO估算的執(zhí)行成本只是假想的成本,同實際執(zhí)行所消耗的成本很可能不一致。而且在一些高訪問負荷、數(shù)據(jù)環(huán)境異常復雜的業(yè)務系統(tǒng)中,數(shù)據(jù)統(tǒng)計信息會產(chǎn)生急劇變化、數(shù)據(jù)環(huán)境的變化(如添加或刪除索引等)可能導致CBO收集的統(tǒng)計信息不準確,從而使其產(chǎn)生誤判,偏向于選擇實際消耗資源較多的執(zhí)行計劃,即CBO認為的“最優(yōu)”的執(zhí)行計劃并非現(xiàn)實中“最優(yōu)”的執(zhí)行計劃。執(zhí)行計劃的選擇失誤往往會導致數(shù)據(jù)庫資源使用緊張,業(yè)務系統(tǒng)的性能突然下降,對整個系統(tǒng)的穩(wěn)定性造成嚴重的影響。
發(fā)明內(nèi)容
(一)要解決的技術問題
為解決上述問題,本發(fā)明的主要目的在于提供一種基于實踐檢驗的執(zhí)行計劃優(yōu)化的裝置及方法,以降低復雜多變的數(shù)據(jù)環(huán)境中CBO的誤判幾率,使得所生成的執(zhí)行計劃確實為現(xiàn)實中最優(yōu)的執(zhí)行計劃,從而增強系統(tǒng)的穩(wěn)定性。
(二)技術方案
為達到上述目的,本發(fā)明提供了一種基于實踐檢驗的執(zhí)行計劃優(yōu)化的裝置,該裝置包括相互連接的數(shù)據(jù)庫裝置1和基于實踐檢驗的優(yōu)化裝置2,其中:數(shù)據(jù)庫裝置1,用于實現(xiàn)關系型數(shù)據(jù)庫的數(shù)據(jù)存儲、結(jié)構化查詢語言SQL語句的優(yōu)化,以及對執(zhí)行計劃的執(zhí)行;基于實踐檢驗的優(yōu)化裝置2,用于接收數(shù)據(jù)庫裝置1輸出的傳統(tǒng)的基于成本的優(yōu)化執(zhí)行計劃,并返回經(jīng)過實踐檢驗的執(zhí)行計劃給數(shù)據(jù)庫裝置1。
上述方案中,所述數(shù)據(jù)庫裝置1向基于實踐檢驗的優(yōu)化裝置2輸出傳統(tǒng)的基于成本的優(yōu)化執(zhí)行計劃,并執(zhí)行基于實踐檢驗的優(yōu)化裝置2返回的經(jīng)過實踐檢驗的執(zhí)行計劃,包括SQL執(zhí)行裝置101、基于成本的執(zhí)行計劃優(yōu)化裝置CBO?102和數(shù)據(jù)庫103,其中:SQL執(zhí)行裝置101,用于對用戶提交的SQL語句進行語法解析,將解析后的查詢塊提交給CBO?102,并執(zhí)行基于實踐檢驗的優(yōu)化裝置2返回的經(jīng)過實踐檢驗的執(zhí)行計劃;CBO102,用于對解析后的查詢塊進行重新排序或改變其關聯(lián)方式以產(chǎn)生更優(yōu)的執(zhí)行計劃,通過從數(shù)據(jù)庫103中獲取查詢塊所訪問對象的統(tǒng)計信息來計算查詢結(jié)果的行數(shù)、比率,預估不同訪問路徑所消耗的CPU、I/O、內(nèi)存資源,進而產(chǎn)生多種執(zhí)行計劃,并選取執(zhí)行成本最小的執(zhí)行計劃作為傳統(tǒng)的基于成本的優(yōu)化執(zhí)行計劃,返回給基于實踐檢驗的優(yōu)化裝置2;數(shù)據(jù)庫103,用于實現(xiàn)關系型數(shù)據(jù)庫的數(shù)據(jù)存儲和訪問控制,并在SQL語句優(yōu)化過程中提供用于估算執(zhí)行計劃成本的各類統(tǒng)計信息。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國工商銀行股份有限公司,未經(jīng)中國工商銀行股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110359329.3/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:二維多孔材料等效彈性模量的計算方法
- 下一篇:菜單管理裝置和菜單管理方法
- 以注射方式執(zhí)行死刑的自動執(zhí)行車的執(zhí)行床
- 過程執(zhí)行裝置、過程執(zhí)行方法以及過程執(zhí)行程序
- 用以執(zhí)行跳舞電子游戲的執(zhí)行系統(tǒng)及其執(zhí)行方法
- 策略執(zhí)行系統(tǒng)及其執(zhí)行方法
- 腳本執(zhí)行系統(tǒng)和腳本執(zhí)行方法
- 命令執(zhí)行設備、命令執(zhí)行系統(tǒng)、命令執(zhí)行方法以及命令執(zhí)行程序
- 程序執(zhí)行裝置、程序執(zhí)行系統(tǒng)以及程序執(zhí)行方法
- 處理執(zhí)行設備和由該處理執(zhí)行設備執(zhí)行的方法
- 有序任務的執(zhí)行方法、執(zhí)行裝置和執(zhí)行系統(tǒng)
- 執(zhí)行器(閥門執(zhí)行器)





