[發明專利]創建數據庫索引的方法、裝置、服務器及存儲介質有效
| 申請號: | 201810128060.X | 申請日: | 2018-02-08 |
| 公開(公告)號: | CN108376156B | 公開(公告)日: | 2020-08-14 |
| 發明(設計)人: | 王家賢 | 申請(專利權)人: | 上海達夢數據庫有限公司 |
| 主分類號: | G06F16/22 | 分類號: | G06F16/22;G06F16/23 |
| 代理公司: | 北京品源專利代理有限公司 11332 | 代理人: | 孟金喆 |
| 地址: | 201203 上海*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 創建 數據庫 索引 方法 裝置 服務器 存儲 介質 | ||
1.一種創建數據庫索引的方法,其特征在于,所述方法包括:
根據索引創建事務,確定待創建索引的數據表;
對所述數據表加上IX鎖和S鎖;
在數據庫系統表中添加所述待創建索引的數據字典,并確定對應的待創建索引;
釋放所述數據表上的S鎖;
根據所述數據表和所述數據字典,在所述待創建索引中填充索引數據,并在接收到除所述索引創建事務之外的其他事務對所述數據表的修改時,保存對應的修改記錄;
將所述修改記錄合并到所述索引數據中;
提交所述索引創建事務。
2.根據權利要求1所述的方法,其特征在于,還包括:
在數據庫系統表中添加所述待創建索引的數據字典,并確定對應的待創建索引后,將所述待創建索引設置為非生效狀態;
在提交所述索引創建事務之前,將所述待創建索引設置為生效狀態。
3.根據權利要求1或2所述的方法,其特征在于,在數據庫系統表中添加所述待創建索引的數據字典時,還包括:
創建用于保存所述修改記錄的輔助表和對應的輔助觸發器;
根據所述數據表和所述數據字典,在所述待創建索引中填充索引數據,并在接收到除所述索引創建事務之外的其他事務對所述數據表的修改時,保存對應的修改記錄,包括:
根據所述數據字典,掃描所述數據表,在所述待創建索引中填充索引數據,并通過輔助觸發器在檢測到除所述索引創建事務之外的其他事務對所述數據表進行修改時,生成對應的修改記錄,并保存到所述輔助表中;
將所述修改記錄合并到所述索引數據中,包括:
掃描所述輔助表中的修改記錄,將掃描到的修改記錄合并到所述索引數據中,并在輔助表中刪除該修改記錄。
4.根據權利要求3所述的方法,其特征在于,在提交所述索引創建事務之前,還包括:
重新對所述數據表加上S鎖。
5.根據權利要求4所述的方法,其特征在于,重新對所述數據表加上S鎖,包括:
在重新對所述數據表加上S鎖時,如果上鎖失敗,則返回執行掃描輔助表并合并掃描到的修改記錄到所述索引數據的操作;
如果上鎖成功,則檢查所述輔助表是否為空,如果所述輔助表不為空,則釋放所述數據表的S鎖,并返回執行掃描輔助表并合并掃描到的修改記錄到所述索引數據的操作;如果所述輔助表為空,則執行提交所述索引創建事務的操作。
6.根據權利要求4或5所述的方法,其特征在于,掃描所述輔助表中的修改記錄,將掃描到的修改記錄合并到所述索引數據中,并在輔助表中刪除該修改記錄,包括:
設置不可見記錄計數并賦值為0,更新所述索引創建事務的可見事務列表,其中,所述不可見記錄計數用于記錄對所述索引創建事務不可見的其他事務對于所述數據表修改的記錄的數量;
掃描所述輔助表中的修改記錄;
在掃描得到一條修改記錄時,根據所述可見事務列表判斷該條修改記錄對所述索引創建事務是否可見,在該條修改記錄對所述索引創建事務可見時,將該條修改記錄合并到所述索引數據中,并在輔助表中刪除該條修改記錄;在該條修改記錄對所述索引創建事務不可見時,將不可見記錄計數加1,并繼續往下掃描所述輔助表;
在掃描沒有得到修改記錄時,判斷所述不可見記錄計數是否大于0,如果是,則返回重新執行設置不可見記錄計數并賦值為0及更新可見事務列表的操作,直到掃描輔助表沒有得到修改記錄而且所述不可見記錄計數等于0。
7.根據權利要求3所述的方法,其特征在于,還包括:
刪除所述輔助表和對應的輔助觸發器。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海達夢數據庫有限公司,未經上海達夢數據庫有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810128060.X/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種地理位置信息確定方法及裝置
- 下一篇:目標用戶查詢方法、系統和裝置





