An object oriented SQLite fast loading technology based on power information acquisition terminal, including electricity information data interface, command interface, power module, information storage module, dynamic memory allocation accelerating chain storage module, and the corresponding memory load control module. By adding the accelerating chain storage module, and the memory load control method, a new combined loading sequence appeared when updating the corresponding acceleration acceleration of chain store in the chain storage module; in the loading process, through the inquiry of the accelerating chain accelerating chain in the storage module and the corresponding, to decide loading sequence. As the master station requests data, according to its work needs, the loading order of data has a certain regularity. The invention can update the order rule of the master station in the process of requesting data by updating the acceleration chain storage module. Thereby, the hit rate of the data loaded by the memory is increased, and the data transmission efficiency of the electric information collecting terminal is improved.
【技術實現步驟摘要】
一種基于SQLite快速加載技術的面向對象用電信息采集終端
本專利技術涉及用電信息采集技術,尤其涉及一種能夠實現快速加載的用電信息采集終端。
技術介紹
SQLite數據庫至一種基于關系類型設計的文件數據庫。其設計目的主要針對嵌入式開發,提供一種運行空間小、占用資源低且安裝配置簡單的數據調用存儲方式。與現有用電信息采集系統中的數據庫不同,SQLite數據庫與個人用戶開發的應用程序并不工作于同一種客戶端與服務器的交互模式。SQLite數據庫通過操作引擎,以動態數據庫的形式將數據連接到個人應用程序中。因此,數據庫文件與用戶應用程序之間的數據通信是在編程語言內直接調用API實現的。然而,這種工作方式,在數據庫文件較大、數據量存儲較多的情況下,數據加載需要消耗大量時間。尤其,由于用電信息采集網絡中每個節點都需要采集大量數據,這種數據庫讀取方式顯然并不適用。為克服上述缺陷,現有的技術要么通過硬件方式,即選擇大容量內存,把所有用到的數據都提前加載到內存中,來加快終端運行速度。這樣做效率最高,但同時帶來高成本。要么通過靜態加載,只加載靜態的數據到內存。靜態加載中,只能加載默認設置的數據,沒有設置的數據將永遠不會加載。這樣的加載效果過于死板,尤其實際用電信息采集現場情況千差萬別,不同時期數據需求不盡相同。靜態加載技術明顯不能滿足各種現場的運行環境。針對以上兩方案中硬件成本與加載效率的矛盾,如何在不增加硬件成本的情況下,實現動態的預測(預加載)將要加載的數據顯得尤為重要。尤其,考慮到用電信息采集現場數據需求不斷變化,如何實現隨著使用狀況的改變,及時改變加載策略,提高增加預測的 ...
【技術保護點】
一種基于SQLite數據庫的用電信息快速加載方法,其特征在于,步驟包括:第一步,初始化:按照默認加速鏈的順序,依次將相應數據加載至可動態分配內存模塊;然后跳轉至第二步;第二步,響應數據加載請求:當接收到數據加載請求后,首先,判斷所請求的數據是否已加載至可動態分配內存模塊:若已加載,則從所述可動態分配內存模塊輸出所請求的數據;否則,查詢用電信息存儲模塊,輸出所請求的數據;然后,記錄所述第二步中輸出的數據以及上一次輸出的數據,形成加速鏈節點指針;其中,所述加速鏈節點指針的起點為所述上一次輸出的數據,指向所述第二步中輸出的數據;第三步,更新加速鏈:查詢加速鏈存儲模塊,判斷是否存在與所述第二步中相同的加速鏈節點指針,若存在,則將所述加速鏈節點指針所對應的加載次數加1;否則,存儲所述第二步中的加速鏈節點指針,并將所述加速鏈節點指針所對應是加載次數設為1;然后跳轉至第四步;第四步,加載新數據:查詢所述加速鏈存儲模塊,查找以所述第二步中輸出的數據為起點,加載次數最多的加速鏈節點指針,將所述加速鏈節點指針所指向的數據加載至所述可動態分配內存模塊;當接收到新的數據加載請求時,跳轉至第二步;否則,結束。
【技術特征摘要】
1.一種基于SQLite數據庫的用電信息快速加載方法,其特征在于,步驟包括:第一步,初始化:按照默認加速鏈的順序,依次將相應數據加載至可動態分配內存模塊;然后跳轉至第二步;第二步,響應數據加載請求:當接收到數據加載請求后,首先,判斷所請求的數據是否已加載至可動態分配內存模塊:若已加載,則從所述可動態分配內存模塊輸出所請求的數據;否則,查詢用電信息存儲模塊,輸出所請求的數據;然后,記錄所述第二步中輸出的數據以及上一次輸出的數據,形成加速鏈節點指針;其中,所述加速鏈節點指針的起點為所述上一次輸出的數據,指向所述第二步中輸出的數據;第三步,更新加速鏈:查詢加速鏈存儲模塊,判斷是否存在與所述第二步中相同的加速鏈節點指針,若存在,則將所述加速鏈節點指針所對應的加載次數加1;否則,存儲所述第二步中的加速鏈節點指針,并將所述加速鏈節點指針所對應是加載次數設為1;然后跳轉至第四步;第四步,加載新數據:查詢所述加速鏈存儲模塊,查找以所述第二步中輸出的數據為起點,加載次數最多的加速鏈節點指針,將所述加速鏈節點指針所指向的數據加載至所述可動態分配內存模塊;當接收到新的數據加載請求時,跳轉至第二步;否則,結束。2.如權利要求1所述的基于SQLite數據庫的用電信息快速加載方法,其特征在于,所述第二步中,輸出所請求的數據之后,還包括判斷并響應重復加載請求的步驟:若下一加載請求與本次加載請求相同,則保留將本次輸出的數據保存至所述可動態分配內存模塊中;否則,刪除所述可動態分配內存模塊中本次輸出的數據。3.如權利要求2所述的基于SQLite數據庫的用電信息快速加載方法,其特征在于,所述第三步中,還包括控制加速鏈節點分支數的步驟:步驟301,在存儲所述第二步中的加速鏈節點指針之前,先查詢與所述第二步中的加速鏈節點指針具有相同起點的加速鏈節點指針的數量,若所述加速鏈中具有相同起點的加速鏈節點指針的數量超過加速鏈節點分支數N,則跳轉至步驟302;否則直接存儲所述第二步中的加速鏈節點指針;步驟302,刪除與所述第二步中的加速鏈節點指針具有相同起點的、更新時間最遠的加速鏈節點指針,然后存儲所述第二步中的加速鏈節點指針;其中,加速鏈節點分支數N為正整數。4.如權利要求1至3任一所述的基于SQLite數據庫的用電信息快速加載方法,其特征在于,所述第四步中,將所述加速鏈節點指針所指向的數據加載至所述可動態分配內存模塊之前,還包括如下步驟:步驟401,判斷所述加速鏈節點指針所指向的數據是否能夠加載至所述可動態分配內存模塊,若能,則加載所述加速鏈節點指針所指向的數據,否則跳轉至步驟202;步驟402,查找以所述...
【專利技術屬性】
技術研發人員:張翔,侯海濤,孫啟龍,
申請(專利權)人:光一科技股份有限公司,
類型:發明
國別省市:江蘇,32
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。