[發明專利]一種數據庫預編譯查詢語句的執行方法有效
| 申請號: | 202110317694.1 | 申請日: | 2021-03-25 |
| 公開(公告)號: | CN113076332B | 公開(公告)日: | 2023-08-01 |
| 發明(設計)人: | 王斌;郭苗苗;王毅;楊曉春 | 申請(專利權)人: | 東北大學 |
| 主分類號: | G06F16/242 | 分類號: | G06F16/242;G06F16/2452;G06F16/2455 |
| 代理公司: | 沈陽東大知識產權代理有限公司 21109 | 代理人: | 梁焱 |
| 地址: | 110819 遼寧*** | 國省代碼: | 遼寧;21 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據庫 預編 查詢 語句 執行 方法 | ||
1.一種數據庫預編譯查詢語句的執行方法,其特征在于,包括如下步驟:
步驟1:獲取用戶輸入的預編譯查詢語句;
步驟2:將該預編譯查詢語句轉化為語法查詢樹;
步驟3:分析該預編譯查詢語句中占位符所對應的屬性,得到可能會生成不同執行計劃的不同參數值,并確定每一參數值所對應的選擇率;同時,初始化該預編譯查詢語句對應的執行計劃更新閾值;
步驟4:將從步驟3獲得的各參數值逐一代入到該預編譯查詢語句中,依次獲得與各參數值相對應的執行計劃,并根據各參數值所分別對應的選擇率劃分出與各執行計劃一一對應的選擇率區間;
步驟5:將步驟4生成的與各選擇率區間相對應的執行計劃進行去重處理且對應地對選擇率區間進行合并處理,并將處理后的選擇率區間和執行計劃進行緩存;
步驟6:判斷用戶是否輸入參數值及該預編譯查詢語句所要查詢的關系表是否發生了數據改變,若用戶未輸入參數值,而該預編譯查詢語句所要查詢的關系表發生了數據改變,則令執行計劃更新閾值減去關系表中發生數據改變的行數,執行計劃更新閾值得到相應的更新,若用戶輸入參數值,則執行步驟7;
步驟7:獲取用戶輸入的參數值;
步驟8:判斷該預編譯查詢語句對應的執行計劃更新閾值是否大于0,若是,則執行步驟10,若否,則執行步驟9;
步驟9:按照步驟2至步驟5的方法,重新生成預編譯查詢語句對應的執行計劃并轉至步驟10;
步驟10:計算用戶輸入的參數值所對應的選擇率;
步驟11:根據步驟10得到的選擇率,從緩存中取出與預編譯查詢語句和選擇率區間都對應的執行計劃;
步驟12:將從步驟11中獲得的執行計劃中的參數值替換為用戶傳入的參數值后,執行該執行計劃。
2.根據權利要求1所述的數據庫預編譯查詢語句的執行方法,其特征在于,步驟3包括如下步驟:
步驟3.1:分析該預編譯查詢語句中占位符所對應的屬性,得到可能會生成不同執行計劃的不同參數值,并確定每一參數值所對應的選擇率;
步驟3.1.1:根據用戶傳入的預編譯查詢語句,修改并更新數據庫中的直方圖信息;
步驟3.1.2:獲得該預編譯查詢語句中占位符所對應的屬性的直方圖邊界,將直方圖邊界值作為可能會生成不同執行計劃的不同參數值,并確定每一參數值所對應的選擇率,這些參數值構成參數值集合;
步驟3.2:根據該預編譯查詢語句所查詢的關系表的行數,初始化該預編譯查詢語句對應的執行計劃更新閾值。
3.根據權利要求2所述的數據庫預編譯查詢語句的執行方法,其特征在于,步驟3.1.1中所述的修改并更新數據庫中的直方圖信息的方法為:先執行語句1:“alter?table‘table’?alter?‘col’?set?statistics?‘N’;”,再執行語句2:“analyze?‘table’;”。
4.根據權利要求2所述的數據庫預編譯查詢語句的執行方法,其特征在于,步驟3.1.2中所述的獲得該預編譯查詢語句中占位符所對應的屬性的直方圖邊界的方法為:數據庫執行語句“select?histogram_bounds?from?pg_stats?where?tablename?=?'table'?andattname?=?'col';”。
5.根據權利要求2所述的數據庫預編譯查詢語句的執行方法,其特征在于,步驟3.2所述的初始化該預編譯查詢語句對應的執行計劃更新閾值的方法為:首先獲取關系表的行數,若該預編譯查詢語句中所查詢的關系表有多個,則獲取多個關系表的行數,然后用關系表中行數最少的關系表行數乘以系數k,其中0k£1,所得的乘積作為該預編譯查詢語句所對應的執行計劃更新閾值的初始值。
6.根據權利要求1所述的數據庫預編譯查詢語句的執行方法,其特征在于,在步驟4中選擇率區間的劃分規則為:首先將步驟3中得到與各參數值所對應的選擇率按照大小順序排序;然后將每兩個相鄰選擇率進行取平均計算,所得的各平均值與選擇率最大值和選擇率最小值一起再按照大小順序排序,得到一個新的組合;再然后從該組合中將每兩個相鄰值取出作為一個選擇率區間,將得到選擇率區間逐一分配給對應的執行計劃。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于東北大學,未經東北大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110317694.1/1.html,轉載請聲明來源鉆瓜專利網。





