本發(fā)明涉及數(shù)據(jù)庫領(lǐng)域,尤其涉及一種快速查詢數(shù)據(jù)的方法及功能模塊。
背景技術(shù):
生產(chǎn)過程中各種數(shù)據(jù)海量式產(chǎn)生。面對這些源源不斷的數(shù)據(jù),首先要進(jìn)行規(guī)范化整理,使數(shù)據(jù)能夠分門別類的存儲(chǔ);然后需要借助有效的查詢工具,能夠快捷,高效的獲取歷史數(shù)據(jù)。這樣,公司管理層才能統(tǒng)籌生產(chǎn)信息,為生產(chǎn)活動(dòng)決策提供參考。生產(chǎn)過程中產(chǎn)生大量的數(shù)據(jù)、表格,一般把各種生產(chǎn)過程中的數(shù)據(jù)記錄在excel表格里,按照不同的分類習(xí)慣,形成各種類型的excel表格,占用電腦大量的內(nèi)存,如果需要查詢數(shù)據(jù),必須在保存表格所在的電腦才能查詢。這種方式的存儲(chǔ)和查詢數(shù)據(jù)有如下缺點(diǎn):(1)excel格式文件不能供多機(jī)訪問和存儲(chǔ);(2)數(shù)據(jù)查詢效率低下,滿足不了遠(yuǎn)程批量化查詢要求;(3)不利于準(zhǔn)確定位操作者需要查詢的數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)要素:
針對上述問題,本發(fā)明提供一種快速查詢數(shù)據(jù)的方法,包括:
設(shè)置數(shù)據(jù)庫刷新,設(shè)置數(shù)據(jù)庫刷新時(shí)間間隔,定時(shí)自動(dòng)進(jìn)行數(shù)據(jù)庫的刷新操作;
初始化,讀取數(shù)據(jù)庫中的初始數(shù)據(jù)并存入軟件緩存;
預(yù)處理,讀取數(shù)據(jù)庫中最近一次刷新的數(shù)據(jù)并存入軟件緩存
后臺(tái)處理,當(dāng)數(shù)據(jù)庫刷新后有更新數(shù)據(jù)時(shí),讀取數(shù)據(jù)庫中的更新數(shù)據(jù),存入軟件緩存并進(jìn)行運(yùn)算處理,并將運(yùn)算處理結(jié)果存入寄存器;
查詢數(shù)據(jù),從寄存器和預(yù)處理結(jié)果中提取所需的數(shù)據(jù)。
優(yōu)選的,后臺(tái)處理中進(jìn)行運(yùn)算處理時(shí),將最近更新的數(shù)據(jù)分割成多個(gè)數(shù)據(jù)塊,按預(yù)設(shè)規(guī)則對所有數(shù)據(jù)塊進(jìn)行命名,將數(shù)據(jù)塊命名進(jìn)行排列組合,形成命名列表,所有數(shù)據(jù)塊命名按照在命名列表中的次序分配序號;然后將所有數(shù)據(jù)塊依命名列表中的次序進(jìn)行排列,形成數(shù)據(jù)塊列表,數(shù)據(jù)塊和數(shù)據(jù)塊命名形成映射關(guān)系,數(shù)據(jù)塊的排列次序?qū)?yīng)數(shù)據(jù)塊命名的序號;處理結(jié)果存入寄存器中。
進(jìn)一步的,查詢數(shù)據(jù)時(shí),先查找數(shù)據(jù)塊命名,隨之查找到數(shù)據(jù)塊命名在命名列表中的序號,然后依序號從數(shù)據(jù)塊中提取相應(yīng)的數(shù)據(jù)。
優(yōu)選的,后臺(tái)處理形成的命名列表、數(shù)據(jù)塊列表存入寄存器后,判斷數(shù)據(jù)庫中的數(shù)據(jù)是否有更新,若有則讀取數(shù)據(jù)庫中更新的數(shù)據(jù),數(shù)據(jù)讀取完成后,對更新的數(shù)據(jù)進(jìn)行后臺(tái)處理并存入寄存器;若數(shù)據(jù)庫無更新數(shù)據(jù),則可直接從寄存器查詢數(shù)據(jù)。
本發(fā)明還提供一種快速查詢數(shù)據(jù)的功能模塊,包括:
數(shù)據(jù)庫,所述數(shù)據(jù)庫作為數(shù)據(jù)源并定時(shí)刷新,所有數(shù)據(jù)信息保存在數(shù)據(jù)庫;
程序初始化模塊,用于將數(shù)據(jù)庫中的初始數(shù)據(jù)讀取并存入軟件緩存中;
預(yù)處理模塊,用于將數(shù)據(jù)庫中最近一次刷新的數(shù)據(jù)存入軟件緩存中;
后臺(tái)處理模塊,讀取數(shù)據(jù)庫更新數(shù)據(jù)并進(jìn)行運(yùn)算處理,運(yùn)算處理將數(shù)據(jù)分割形成數(shù)據(jù)塊以及相應(yīng)的數(shù)據(jù)塊命名列表;
程序運(yùn)行模塊,運(yùn)算處理程序初始化模塊、預(yù)處理模塊、后臺(tái)處理模塊返回的數(shù)據(jù),響應(yīng)查詢請求并輸出查詢結(jié)果;
查詢請求接口,與程序運(yùn)行模塊連接,用于接收查詢請求;
查詢結(jié)果顯示模塊,與程序運(yùn)行模塊連接,用于將查詢結(jié)果通過上位機(jī)的軟件界面顯示出來。
優(yōu)選的,程序運(yùn)行模塊中設(shè)有寄存器,用于存儲(chǔ)后臺(tái)處理模塊中形成的數(shù)據(jù)塊命名列表。
利用本發(fā)明進(jìn)行查詢數(shù)據(jù)時(shí),不再是從數(shù)據(jù)庫中獲取數(shù)據(jù),而是從存儲(chǔ)于寄存器的后臺(tái)(包括預(yù)處理和后臺(tái)處理)運(yùn)算結(jié)果中提取數(shù)據(jù),可大大提高了信息查詢速度;此外,本發(fā)明中將數(shù)據(jù)庫中的所有數(shù)據(jù)分割成各個(gè)數(shù)據(jù)塊進(jìn)行存儲(chǔ),查詢某數(shù)據(jù)時(shí)能直接從該數(shù)據(jù)所在的數(shù)據(jù)塊進(jìn)行查詢,查詢速度快。
附圖說明
圖1是本發(fā)明提供的快速查詢數(shù)據(jù)的方法實(shí)施例流程圖。
圖2是本發(fā)明提供的快速查詢數(shù)據(jù)的方法實(shí)施例中形成命名列表和數(shù)據(jù)塊列表流程圖。
圖3是本發(fā)明提供的快速查詢數(shù)據(jù)的功能模塊關(guān)系圖。
具體實(shí)施方式
為便于本領(lǐng)域技術(shù)人員更好的理解本發(fā)明,下面結(jié)合附圖進(jìn)行進(jìn)一步的說明。
如圖1所示,一種快速查詢數(shù)據(jù)的方法,包括:
設(shè)置數(shù)據(jù)庫刷新11;然后進(jìn)行初始化111,讀取數(shù)據(jù)庫中的初始數(shù)據(jù)并存入軟件緩存;初始化111后,進(jìn)入預(yù)處理112階段,將上一次刷新的數(shù)據(jù)庫中數(shù)據(jù)讀出來,存入軟件緩存中,然后進(jìn)入待機(jī)狀態(tài)113,判斷是否有查詢數(shù)據(jù)的請求114,有則獲取數(shù)據(jù)115、顯示結(jié)果116。初始化11后同時(shí)進(jìn)入后臺(tái)處理121,對數(shù)據(jù)庫進(jìn)行刷新后的數(shù)據(jù)進(jìn)行緩存,判斷處理完成否,若處理完成則將處理結(jié)果123的數(shù)據(jù)緩存進(jìn)寄存器,獲取的數(shù)據(jù)同時(shí)從預(yù)處理112和后臺(tái)處理121的數(shù)據(jù)中獲得,數(shù)據(jù)緩存入寄存器后,判斷數(shù)據(jù)庫是否有更新124,有則獲取數(shù)據(jù)庫更新數(shù)據(jù)125,判斷數(shù)據(jù)讀取是否完成126,數(shù)據(jù)讀取完成后,傳送數(shù)據(jù)127到后臺(tái)處理121,數(shù)據(jù)未讀取完成則繼續(xù)獲取數(shù)據(jù)庫更新的數(shù)據(jù)125。整個(gè)流程中,數(shù)據(jù)庫刷新11為定時(shí)刷新。程序在運(yùn)行過程中,在后臺(tái)自動(dòng)運(yùn)算處理軟件緩存中的數(shù)據(jù),執(zhí)行數(shù)據(jù)查詢時(shí),從后臺(tái)運(yùn)算和預(yù)處理結(jié)果中提取數(shù)據(jù)。
如圖2所示,從數(shù)據(jù)庫讀取數(shù)據(jù)21后,依據(jù)需求將數(shù)據(jù)進(jìn)行分割,形成數(shù)據(jù)塊a、b、c;然后為數(shù)據(jù)塊命名23,接著為數(shù)據(jù)塊名稱進(jìn)行排列組合24,形成命名列表;再為數(shù)據(jù)塊進(jìn)行排列組合25,將所有數(shù)據(jù)塊依命名列表中的次序進(jìn)行排列,形成數(shù)據(jù)塊列表,即形成數(shù)據(jù)塊與命名的映射關(guān)系26,數(shù)據(jù)塊的排列次序?qū)?yīng)相應(yīng)的序號。
查詢數(shù)據(jù)時(shí),根據(jù)輸入關(guān)鍵字的類別,比如產(chǎn)品條碼、日期、特征參數(shù)、生產(chǎn)參數(shù)等,先查找這個(gè)類別對應(yīng)的數(shù)據(jù)塊命名,這個(gè)數(shù)據(jù)塊命名在列表中的序號,然后依序號從數(shù)據(jù)塊中獲取相應(yīng)的數(shù)據(jù)。
如圖3所示快速查詢數(shù)據(jù)的功能模塊,包括有
數(shù)據(jù)庫31:數(shù)據(jù)源,所有生產(chǎn)信息保存在這個(gè)數(shù)據(jù)庫中;
程序初始化模塊32:將數(shù)據(jù)庫中數(shù)據(jù)讀出來,存入軟件緩存中;
預(yù)處理模塊33,用于將數(shù)據(jù)庫中最近一次刷新的數(shù)據(jù)存入軟件緩存。
后臺(tái)處理模塊34:在程序另一工作線程,自動(dòng)獲取數(shù)據(jù)庫更新數(shù)據(jù)并進(jìn)行運(yùn)算處理,將處理結(jié)果存儲(chǔ)于寄存器中;
程序運(yùn)行模塊35:運(yùn)算處理程序初始化和后臺(tái)處理返回的數(shù)據(jù),響應(yīng)查詢請求,并輸出查詢結(jié)果;
查詢請求接口36:用于響應(yīng)查詢請求。接到查詢請求后,從軟件寄存器中讀取數(shù)據(jù),送到顯示界面;
查詢結(jié)果顯示模塊37:將查詢結(jié)果通過軟件工作界面顯示出來。
上述實(shí)施例僅為本發(fā)明的具體實(shí)施例,其描述較為具體和詳細(xì),但并不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些顯而易見的替換形式均屬于本發(fā)明的保護(hù)范圍。