[發明專利]利用內存數據庫進行數據查詢的方法及系統有效
| 申請號: | 201310717225.4 | 申請日: | 2013-12-23 |
| 公開(公告)號: | CN103761248B | 公開(公告)日: | 2018-04-17 |
| 發明(設計)人: | 謝足琦;樊進;張宏偉;賴洪波 | 申請(專利權)人: | 遠光軟件股份有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 廣東朗乾律師事務所44291 | 代理人: | 楊煥軍 |
| 地址: | 519808 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 利用 內存 數據庫 進行 數據 查詢 方法 系統 | ||
【技術領域】
本發明屬于企業信息管理系統領域(ERP),涉及信息管理系統領域中關于稽核、審計及相關監控業務的標準數據管理技術,具體涉及利用內存數據庫進行數據查詢的方法及系統。
【背景技術】
在數據監控過程中,有時候需要對多個業務庫的數據進行查詢,業務庫為數據庫,業務庫中存有至少一個實體,實體中含有多個業務數據;目前的查詢方法在以往的一些方案中一般采用如下方式:
1、在數據庫中(如Oracle),通過DBLINK來將需要查詢的數據表通過鏈接表的方式創建到主業務庫,因鏈接表的創建會占用數據庫連接,會造成數據庫連接資源過多,在有限的連接資源情況下產生過多的連接會導致查詢性能低下,嚴重的情況會導致數據庫崩潰,同時創建鏈接表需要提升當前用戶在Oracle中的權限,存在一定的安全隱患;
2、將多個業務庫的數據查詢到內存中,然后在內存中對多個數據集做計算,這樣當數據量過多時(如百萬條、千萬條)會占用大量的內存空間,影響生產系統的性能,嚴重會導致生產系統宕機的情況,而且針對每一個查詢需要處理單獨的業務邏輯,擴展性較差。
【發明內容】
本發明要解決的第一個技術問題是提供一種利用內存數據庫進行數據查詢的方法,其加快了數據查詢的速度。
本發明要解決的第二個技術問題是提供一種利用內存數據庫進行數據查詢的系統,其加快了數據查詢的速度。
上述第一個技術問題通過以下技術方案解決:
利用內存數據庫進行數據查詢的方法,其特征在于,包括以下步驟:
1)建立監控服務,在監控服務中設置實體,以及實體的加載SQL、加載策略,加載SQL為實體加載時在該實體所在的業務庫執行的SQL,加載策略為實體的數據選擇條件;
2)針對每一個實體,結合對應的加載策略,使用對應的加載SQL從該實體所在的業務庫中選擇該實體中相應的數據,加載到內存數據庫中,所述內數據庫采用異機部署;
3)接收查詢命令,在內存數據庫中找出與查詢命令相應的數據返回。
在步驟2)中,內存數據庫中相應地生成一實體狀態表,該實體狀態表記載有被加載到內存數據庫中的每個實體的屬性,屬性包括實體名稱、加載SQL、加載策略。
在步驟2)具體為監控服務中的每個實體進行以下操作:首先根據實體名稱來判斷該實體在實體狀態表中有沒有記錄,如果沒有記錄則將該實體相應的數據加載到內存數據庫中,在實體狀態表記載該實體的屬性;如果有記錄則判斷該實體的此次加載策略是否與實體狀態表中對應實體的加載策略一致;如果一致,則該實體的此次加載不需要進行;如果不一致,則將內存數據庫中該實體的數據刪除,并將該實體此次需要加載的數據加載到內存數據庫中,同時更新實體狀態表中該實體的加載次數、最近加載時間、加載SQL、加載策略。
在步驟1)中的監控服務中設置實體的加載次序;在步驟2)中,按所述加載次序對每個實體進行有次序地加載。
在步驟1)和步驟2)之間還包括步驟1’):遍歷實體表上所有實體,根據實體的最近加載時間、加載次數、實體大小計算出每一個實體的加載頻率,然后根據加載頻率從高到底依次將實體加載進內存數據庫。
所述屬性還包括加載實體的實體行記錄數、實體行記錄大小;在步驟2)中,在每一次加載實體之前,判斷實體的預加載量與內存數據庫的當前使用量之和是否大于內存閥值,如果大于則從內存數據庫中將符合刪除條件的實體刪除,同時在實體狀態表中將與這些實體對應的屬性刪除;實體預加載量=當前加載實體的實體行記錄數×實體行記錄大小×計算誤差比率,計算誤差比=實際耗用內存與計算值的比率。
還包括定時刪除數據步驟:每隔一定時間,當判斷到內存數據庫的當前使用量大于內存閥值從內存數據庫中將符合刪除條件的實體的數據刪除,同時在實體狀態表中將與這些符合刪除條件的實體對應的屬性刪除。
上述第二個技術問題通過以下技術方案解決:
利用內存數據庫進行數據查詢的系統,其特征在于,包括:
1)設置模塊,用于建立監控服務,在監控服務中設置實體,以及實體的加載SQL、加載策略,加載SQL為實體加載時在該實體所在的業務庫執行的SQL,加載策略為實體的數據選擇條件;
2)加載模塊,用于對每一個實體,結合對應的加載策略,使用對應的加載SQL從該實體所在的業務庫中選擇該實體中相應的數據,加載到內存數據庫中,所述內數據庫采用異機部署;
3)查詢模塊,用于接收查詢命令,在內存數據庫中找出與查詢命令相應的數據返回。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于遠光軟件股份有限公司,未經遠光軟件股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310717225.4/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:基于android系統的多媒體播放器
- 下一篇:一種轎頂檢修箱固定裝置





