[發明專利]數據庫執行哈希連接的方法以及裝置在審
| 申請號: | 202110181601.7 | 申請日: | 2021-02-10 |
| 公開(公告)號: | CN113297209A | 公開(公告)日: | 2021-08-24 |
| 發明(設計)人: | 胥平勇 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22;G06F16/2453;G06F16/2455 |
| 代理公司: | 北京智信禾專利代理有限公司 11637 | 代理人: | 趙杰 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 數據庫 執行 連接 方法 以及 裝置 | ||
1.一種數據庫執行哈希連接的方法,包括:
獲取為哈希連接構建的哈希表的數據量;
通過將所述哈希表的數據量與多個探測模式分別對應的表數據量范圍比較,選擇所述哈希表對應的探測模式,所述多個探測模式單次探測掃描的數據量不同;
利用選擇的探測模式對哈希表執行哈希連接的探測。
2.根據權利要求1所述的方法,所述多個探測模式包括:逐條探測模式及攢批探測模式。
3.根據權利要求2所述的方法,在選擇的探測模式為逐條探測模式的情況下,所述利用選擇的探測模式對哈希表執行哈希連接的探測,包括:
從驅動表獲取一條未掃描過的數據,該條數據成為已掃描過的數據;
根據所述一條數據的關聯鍵,在哈希表中查找到匹配的數據行存下來;
根據查找到的數據行的行號獲取需要的列的數據;
判斷所述驅動表是否存在未掃描過的數據,如果存在,返回到所述從驅動表獲取一條未掃描過的數據的步驟。
4.根據權利要求2所述的方法,在選擇的探測模式為攢批探測模式的情況下,所述利用選擇的探測模式對哈希表執行哈希連接的探測,包括:
從驅動表獲取一條未掃描過的數據,該條數據成為已掃描過的數據;
如果所述驅動表不存在未掃描過的數據,判斷是否還有存下來的行號未獲取需要的列,如果有,根據存下來的行號獲取需要的列的數據;
根據所述一條數據的關聯鍵,在哈希表中查找到匹配的數據行存下來;
判斷本次探測掃描數據累計的條數是否達到攢批探測模式對應的預設攢批閾值;
如果否,重新進入所述從驅動表獲取一條未掃描過的數據的步驟;
如果是,根據本次探測查找到的數據行的行號獲取需要的列的數據;
判斷所述驅動表是否存在未掃描過的數據,如果存在,通過返回到所述從驅動表獲取一條未掃描過的數據的步驟進入下一次探測掃描。
5.根據權利要求1所述的方法,還包括:
設置多個探測模式分別對應的表數據量范圍的初值;
獲取為哈希連接構建的哈希表樣本的數據量;
通過將所述哈希表樣本的數據量與多個探測模式分別對應的表數據量范圍比較,選擇所述哈希表樣本對應的探測模式,所述多個探測模式單次探測掃描的數據量不同;
在利用選擇的探測模式對哈希表樣本執行哈希連接的探測時,采集表示哈希連接性能的性能數據;
根據采集的性能數據調整一個或多個探測模式分別對應的表數據量范圍。
6.根據權利要求5所述的方法,還包括:
在所述哈希表樣本的數據量未落入所述多個探測模式分別對應的表數據量范圍的情況下,從所述多個探測模式中隨機選擇對應的探測模式作為選擇的探測模式。
7.一種數據庫執行哈希連接的裝置,包括:
數據量獲取模塊,被配置為獲取為哈希連接構建的哈希表的數據量;
模式選擇模塊,被配置為通過將所述哈希表的數據量與多個探測模式分別對應的表數據量范圍比較,選擇所述哈希表對應的探測模式,所述多個探測模式單次探測掃描的數據量不同;
探測執行模塊,被配置為利用選擇的探測模式對哈希表執行哈希連接的探測。
8.一種計算設備,包括:
存儲器和處理器;
所述存儲器用于存儲計算機可執行指令,所述處理器用于執行所述計算機可執行指令:
獲取為哈希連接構建的哈希表的數據量;
通過將所述哈希表的數據量與多個探測模式分別對應的表數據量范圍比較,選擇所述哈希表對應的探測模式,所述多個探測模式單次探測掃描的數據量不同;
利用選擇的探測模式對哈希表執行哈希連接的探測。
9.一種計算機可讀存儲介質,其存儲有計算機指令,該指令被處理器執行時實現權利要求1至6任意一項所述數據庫執行哈希連接的方法的步驟。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110181601.7/1.html,轉載請聲明來源鉆瓜專利網。





