[發(fā)明專利]執(zhí)行計劃的存儲方法、裝置及系統(tǒng)有效
| 申請?zhí)枺?/td> | 201310507367.8 | 申請日: | 2013-10-24 |
| 公開(公告)號: | CN103577561B | 公開(公告)日: | 2017-12-01 |
| 發(fā)明(設計)人: | 于巍;文繼軍;劉輝軍 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 北京中博世達專利商標代理有限公司11274 | 代理人: | 申健 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 執(zhí)行 計劃 存儲 方法 裝置 系統(tǒng) | ||
技術領域
本發(fā)明涉及數(shù)據(jù)庫領域,特別涉及一種執(zhí)行計劃的存儲方法、裝置及系統(tǒng)。
背景技術
數(shù)據(jù)庫中的執(zhí)行計劃是指對SQL(Structured query language,結構化查詢語言)請求的執(zhí)行過程的描述。數(shù)據(jù)庫服務器每次執(zhí)行客戶端發(fā)起的SQL請求時,都需要對SQL請求進行解析并生成對應的執(zhí)行計劃,并將執(zhí)行計劃保存在數(shù)據(jù)庫服務器的內(nèi)存中。目前數(shù)據(jù)庫服務器在進行執(zhí)行計劃的保存時,會針對不同的客戶端分別配置緩存區(qū),以保存不同的客戶端對應的執(zhí)行計劃。
然而通過目前這種執(zhí)行計劃的存儲方式進行執(zhí)行計劃保存時,數(shù)據(jù)庫服務器為不同的客戶端分別配置緩存區(qū)。由于當客戶端所分配的緩存區(qū)飽和后,利用率低的執(zhí)行計劃所占用的緩存會被釋放,以使得該客戶端利用率高的執(zhí)行計劃緩存在所分配的緩存區(qū)中,即上述利用率低的執(zhí)行計劃無法被保存在緩存中,當客戶端再次發(fā)起該SQL請求時,數(shù)據(jù)庫服務器需要重新解析該SQL請求并生成對應的執(zhí)行計劃,從而造成執(zhí)行計劃的緩存命中率較低,增加了系統(tǒng)開銷。
發(fā)明內(nèi)容
本發(fā)明實施例提供一種執(zhí)行計劃的存儲方法、裝置及系統(tǒng),可以提高執(zhí)行計劃的緩存命中率,減少系統(tǒng)開銷。第一方面,本發(fā)明實施例提供一種執(zhí)行計劃的存儲方法,包括:
客戶端接收結構化查詢語言SQL請求;
所述客戶端檢測在所述客戶端的緩存中是否存在所述SQL請求對應的執(zhí)行計劃;
若所述客戶端的緩存中不存在所述SQL請求對應的執(zhí)行計劃,所述客戶端生成位置信息,所述位置信息用于指示與所述SQL請求對應的執(zhí)行計劃的緩存位置,所述緩存位置為所述客戶端的緩存和/或數(shù)據(jù)庫服務器的緩存;
所述客戶端將所述位置信息及所述SQL請求發(fā)送給所述數(shù)據(jù)庫服務器,以使得所述數(shù)據(jù)庫服務器生成所述SQL請求對應的執(zhí)行計劃,并將所述執(zhí)行計劃保存到所述位置信息指示的緩存中。
在第一方面的第一種實現(xiàn)方式中,還包括:
若所述客戶端的緩存中存在所述SQL請求對應的執(zhí)行計劃,所述客戶端將所述執(zhí)行計劃發(fā)送給所述數(shù)據(jù)庫服務器,以使得所述數(shù)據(jù)庫服務器執(zhí)行所述執(zhí)行計劃。
結合第一方面或者第一方面的第一種實現(xiàn)方式,在第一方面的第二種實現(xiàn)方式中,所述若所述客戶端的緩存中存在所述SQL請求對應的執(zhí)行計劃,所述客戶端將所述執(zhí)行計劃發(fā)送給所述數(shù)據(jù)庫服務器,以使得所述數(shù)據(jù)庫服務器執(zhí)行所述執(zhí)行計劃,具體包括:
若所述客戶端的緩存中存在所述SQL請求對應的多個執(zhí)行計劃,則所述客戶端從所述多個執(zhí)行計劃中選擇任意一個執(zhí)行計劃發(fā)送給所述數(shù)據(jù)庫服務器。
結合第一方面或者第一方面的第一種實現(xiàn)方式,或者第一方面的第二種實現(xiàn)方式,在第一方面的第三種實現(xiàn)方式中,在所述客戶端將所述執(zhí)行計劃發(fā)送給所述數(shù)據(jù)庫服務器之前,所述方法還包括:
所述客戶端通過圖形化界面顯示所述執(zhí)行計劃的參數(shù)信息;
所述客戶端根據(jù)參數(shù)信息修改指令調(diào)整所述執(zhí)行計劃的參數(shù)信息,并將調(diào)整后的執(zhí)行計劃保存在所述客戶端的緩存中;
所述客戶端將所述執(zhí)行計劃發(fā)送給所述數(shù)據(jù)庫服務器的步驟包括:
所述客戶端將所述調(diào)整后的執(zhí)行計劃發(fā)送給所述數(shù)據(jù)庫服務器。
結合第一方面或者第一方面的第一種實現(xiàn)方式,或者第一方面的第二種實現(xiàn)方式,或者第一方面的第三種實現(xiàn)方式,在第一方面的第四種實現(xiàn)方式中,在所述客戶端將所述位置信息及所述SQL請求發(fā)送給所述數(shù)據(jù)庫服務器之后,所述方法還包括:
若所述位置信息指定所述執(zhí)行計劃的緩存位置為所述客戶端的緩存,所述客戶端接收所述數(shù)據(jù)庫服務器發(fā)送的所述SQL請求對應的執(zhí)行計劃,并保存在所述客戶端的緩存中。
結合第一方面或者第一方面的第一種實現(xiàn)方式,或者第一方面的第二種實現(xiàn)方式,或者第一方面的第三種實現(xiàn)方式,或者第一方面的第四種實現(xiàn)方式,在第一方面的第五種實現(xiàn)方式中,所述若所述客戶端的緩存中不存在所述SQL請求對應的執(zhí)行計劃,所述客戶端生成位置信息,具體包括:
若所述客戶端的緩存中不存在所述SQL請求對應的執(zhí)行計劃,所述客戶端根據(jù)所述SQL請求,進行哈希運算生成所述位置信息。第二方面,本發(fā)明實施例提供一種執(zhí)行計劃的存儲裝置,包括:
接收單元,用于接收結構化查詢語言SQL請求;
檢測單元,用于檢測在所述客戶端的緩存中是否存在所述接收單元接收的所述SQL請求對應的執(zhí)行計劃;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經(jīng)華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310507367.8/2.html,轉載請聲明來源鉆瓜專利網(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í)行器)





