章 碧,邵立琴,陳遠(yuǎn)志
(中國船舶重工集團(tuán)公司第七二四研究所,南京 211153)
一種雷達(dá)輻射源目標(biāo)信息快速查詢方法
章 碧,邵立琴,陳遠(yuǎn)志
(中國船舶重工集團(tuán)公司第七二四研究所,南京 211153)
介紹了一種雷達(dá)輻射源目標(biāo)信息快速查詢方法,描述了該方法的實(shí)施流程和相關(guān)優(yōu)點(diǎn),通過實(shí)驗數(shù)據(jù)證明了其高效性。該方法可以作為相似類型信息(如敵我識別信息、塔康信息等)查詢功能的通用范式,實(shí)現(xiàn)在大數(shù)據(jù)量目標(biāo)信息中快速獲取滿足不同查詢條件的目標(biāo)信息數(shù)據(jù)。
雷達(dá)輻射源;存儲過程;多線程;物化視圖;分頁查詢
雷達(dá)偵測系統(tǒng)通過對接收的輻射源信號進(jìn)行處理而獲得輻射源目標(biāo)參數(shù)信息,并將這些信息存儲在系統(tǒng)數(shù)據(jù)庫中。隨著系統(tǒng)工作時間的不斷累加,數(shù)據(jù)庫中存儲的雷達(dá)輻射源目標(biāo)參數(shù)信息量也將不斷增大,如果不采取高效率措施,則對于數(shù)據(jù)庫中的雷達(dá)輻射源目標(biāo)信息的查詢時間也將會越來越長。本文針對輻射源數(shù)據(jù)庫大數(shù)據(jù)量與查詢效率的矛盾,提出優(yōu)化設(shè)計方法。對大數(shù)據(jù)量的雷達(dá)輻射源目標(biāo)信息,一方面進(jìn)行存儲方式的改造,另一方面重新設(shè)計查詢方式,使得雷達(dá)輻射源目標(biāo)信息的查詢功能在數(shù)據(jù)庫服務(wù)器端和數(shù)據(jù)庫客戶端之間達(dá)到資源利用和查詢效率的優(yōu)化,并進(jìn)行通用化處理,使其成為一種相似類型數(shù)據(jù)庫信息查詢功能的通用范式。
隨著雷達(dá)偵測系統(tǒng)工作時間的累加,輻射源信息數(shù)據(jù)的不斷加入,如果數(shù)據(jù)庫服務(wù)器采用單個表格來存儲雷達(dá)輻射源目標(biāo)信息,則該表格將會成為一張巨表。而查詢一張巨表,往往意味著數(shù)據(jù)庫客戶端需要從服務(wù)器端的數(shù)據(jù)文件中讀取大量信息(硬解析[1]),在查詢過程中存在頻繁的數(shù)據(jù)I/O,不僅耗用大量計算機(jī)資源而且影響查詢效率。有鑒于此,利用單張表格存儲雷達(dá)輻射源目標(biāo)信息的方式通常不可取,取而代之的是使用多張表格來進(jìn)行存儲。
對表格的拆分一般分為橫向切割和縱向切割兩種??紤]到巨表行數(shù)過多,因此考慮對巨表進(jìn)行橫向切割,即當(dāng)表中數(shù)據(jù)行數(shù)達(dá)到一定數(shù)量時,將其切割為一張子表。為了將多個子表進(jìn)行邏輯上的關(guān)聯(lián),可以考慮將所有子表的關(guān)聯(lián)數(shù)據(jù)進(jìn)行記錄,即建立一張子表的索引信息表,如表1所示。
表1雷達(dá)輻射源目標(biāo)信息子表索引信息表
從以上索引信息表中可以看出,當(dāng)一張雷達(dá)輻射源目標(biāo)信息子表存儲的信息數(shù)為一百萬批時,會用另一張子表繼續(xù)存儲雷達(dá)輻射源目標(biāo)信息。那么,在查詢雷達(dá)輻射源目標(biāo)信息的時候,可以根據(jù)時間條件從其索引信息表中找到一個或者多個雷達(dá)輻射源目標(biāo)信息子表,從而減小數(shù)據(jù)篩選的范圍。
為了實(shí)現(xiàn)雷達(dá)輻射源目標(biāo)信息的分表存儲,設(shè)計采用兩個存儲過程來實(shí)現(xiàn),分別為創(chuàng)建子表存儲過程sp_createrdwtable和入庫存儲過程sp_addrdwtotable。前者根據(jù)已存的子表個數(shù)N-1(N為正整數(shù))創(chuàng)建一個編號為N的子表T_RDW_INFO_N(N為八位整數(shù),不足八位則前面補(bǔ)零),后者則向當(dāng)前或者下一編號的子表中插入一條雷達(dá)輻射源目標(biāo)信息,并更新索引表中相應(yīng)子表的記錄,具體流程如圖1所示。
圖1 入庫存儲過程sp_addrdwtotable流程圖
為了提高雷達(dá)輻射源目標(biāo)信息查詢速度,需要解決以下問題:
(1) 查詢結(jié)果的條數(shù)在十萬級甚至百萬級的數(shù)據(jù)時,通常導(dǎo)致系統(tǒng)查詢結(jié)果顯示資源相對不足;
(2) 數(shù)據(jù)查詢過程耗費(fèi)時間往往比較長,幾分鐘甚至十幾分鐘;
(3) 數(shù)據(jù)查詢過程耗費(fèi)網(wǎng)絡(luò)資源多。
針對查詢結(jié)果顯示資源的不足問題,設(shè)計將查詢結(jié)果進(jìn)行分頁顯示,每次僅顯示一頁查詢結(jié)果,同時應(yīng)具有向上翻頁、向下翻頁和頁面跳轉(zhuǎn)的功能。
針對查詢過程耗費(fèi)時間長問題,設(shè)計在查詢過程中將已查詢到的部分結(jié)果先進(jìn)行顯示,而不必等待查詢過程運(yùn)行完畢,同時應(yīng)該具有在查詢過程中隨時中止查詢的功能。
針對查詢過程耗費(fèi)網(wǎng)絡(luò)資源多問題,設(shè)計減少查詢客戶端與服務(wù)器端之間的數(shù)據(jù)交換,即利用查詢客戶端向服務(wù)器端傳遞相應(yīng)存儲過程中的參數(shù),查詢過程由性能更高的服務(wù)器端完成,同時查詢結(jié)果也放在服務(wù)器端。
通過以上措施,得到查詢結(jié)果的過程將會是利用存儲過程持續(xù)生成的方式,在這個過程中可以分頁查詢已經(jīng)生成的部分結(jié)果。為了實(shí)現(xiàn)快速查詢,可以采用多線程技術(shù),一邊在服務(wù)器端生成查詢結(jié)果,一邊在客戶端讀取查詢結(jié)果。
線程1查詢客戶端通過向服務(wù)器端傳遞存儲過程參數(shù),包括查詢條件、查詢結(jié)果顯示方式等,調(diào)用服務(wù)器端中的相關(guān)存儲過程,生成查詢結(jié)果臨時表。實(shí)現(xiàn)的具體流程如圖2所示。
圖2 生成查詢結(jié)果臨時表線程流程圖
線程2每隔一秒查詢一次線程1中生成的查詢結(jié)果臨時表,得到查詢結(jié)果數(shù)并顯示,同時得到查詢結(jié)果的總頁數(shù)作為向上翻頁、向下翻頁和頁面跳轉(zhuǎn)的依據(jù)。
查詢客戶端根據(jù)分頁查詢的顯示行數(shù)、排序字段和頁碼等,從線程1中生成的查詢結(jié)果臨時表中讀取一頁查詢結(jié)果。
這種雷達(dá)輻射源目標(biāo)信息查詢方法的優(yōu)點(diǎn)是:
(1) 查詢結(jié)果顯示資源占用小,顯示速度快;
(2) 能快速得到查詢結(jié)果,雖然不一定是全部查詢結(jié)果;
(3) 減少了查詢客戶端與服務(wù)器端網(wǎng)絡(luò)之間的數(shù)據(jù)交換。
另一方面,在創(chuàng)建查詢結(jié)果臨時表的過程中存在遍歷子表的過程,而查詢結(jié)果臨時表中的約束條件,即表格主鍵的設(shè)置,有可能導(dǎo)致大量目標(biāo)信息插值行為無效,降低查詢結(jié)果臨時表生成的效率,或者由于查詢條件的復(fù)雜,在子表中篩選滿足查詢條件的目標(biāo)信息時本身效率就不高。為了解決可能存在的查詢效率低現(xiàn)象,可以再引入一個線程,快速獲取所有查詢結(jié)果。
線程3查詢客戶端通過向服務(wù)器端傳遞存儲過程參數(shù),包括查詢條件、查詢結(jié)果顯示方式等,調(diào)用服務(wù)器端中的相關(guān)存儲過程,先生成查詢結(jié)果視圖,再將查詢結(jié)果視圖轉(zhuǎn)化成物化視圖[2]。實(shí)現(xiàn)的具體流程如圖3所示。
圖3 生成查詢結(jié)果物化視圖線程流程圖
同時,考慮到生成查詢結(jié)果物化視圖的過程往往需要耗費(fèi)一定的時間(比生成查詢結(jié)果臨時表耗費(fèi)的時間短),但是在這段時間內(nèi)無法讀取物化視圖中的數(shù)據(jù)。針對該問題,系統(tǒng)設(shè)計在查詢結(jié)果物化視圖生成完成之后,中止線程1中查詢結(jié)果臨時表的生成和線程2中的定時查詢。查詢客戶端根據(jù)分頁查詢的顯示行數(shù)、排序字段和頁碼等,從線程3中生成的查詢結(jié)果物化視圖中讀取一頁查詢結(jié)果。
在實(shí)際數(shù)據(jù)庫使用中,例如選定系統(tǒng)正常工作時間中跨度為2天的一段時間。該時間段內(nèi)存儲的目標(biāo)總數(shù)約為270萬條,查詢條件為目標(biāo)國籍為單一某國,對雷達(dá)輻射源目標(biāo)信息進(jìn)行查詢,最終得到253批查詢結(jié)果,利用線程1查詢時耗時3分27秒,而利用線程3查詢時耗時僅為16秒。
在雷達(dá)輻射源目標(biāo)信息查詢過程中,先啟用線程1和線程2,如果在運(yùn)行線程1時出現(xiàn)查詢緩慢的情況,則啟用線程3。不論是線程1中生成的查詢結(jié)果臨時表還是線程3中生成的查詢結(jié)果物化視圖,都可以方便地以外部表等方式進(jìn)行數(shù)據(jù)文件導(dǎo)出。
對雷達(dá)輻射源目標(biāo)信息存儲的優(yōu)化,一方面加大了目標(biāo)信息存儲結(jié)構(gòu)的復(fù)雜度,另一方面卻令目標(biāo)信息在入庫過程中,主鍵約束[3]的判定,由巨表主鍵切換成普通表主鍵,最終反而提升了目標(biāo)信息入庫的效率。在查詢雷達(dá)輻射源目標(biāo)信息時,根據(jù)查詢時間段從雷達(dá)輻射源目標(biāo)索引信息表中可以快速定位查詢結(jié)果所在的子表序列,進(jìn)而提升查詢效率。
利用線程1創(chuàng)建查詢結(jié)果臨時表,在查詢條件僅限于時間段且查詢結(jié)果沒有主鍵約束時,與利用線程3創(chuàng)建查詢結(jié)果物化視圖的實(shí)際過程相仿,效率差別小。而在查詢條件復(fù)雜的條件下,創(chuàng)建臨時表的過程往往需要遍歷多張目標(biāo)信息子表,可能存在大量的查詢條件判斷和無效信息插值,從而影響臨時表創(chuàng)建的效率。
利用線程3創(chuàng)建查詢結(jié)果物化視圖的效率高,但是查詢客戶端無法在查詢結(jié)果物化視圖的創(chuàng)建過程中獲取物化視圖中的查詢結(jié)果。當(dāng)查詢結(jié)果中數(shù)據(jù)量大,例如達(dá)到十萬級時,需要等待比較長,無法快速地獲得一部分查詢結(jié)果,從而影響查詢客戶端用戶的體驗。
考慮到查詢客戶端用戶的體驗,可以采用線程1和線程2結(jié)合的方式;考慮到查詢效率,可以采用線程3的方式。
上述的雷達(dá)輻射源目標(biāo)快速查詢方法是在用戶體驗和查詢效率之間進(jìn)行取舍,即以用戶體驗為優(yōu)先。當(dāng)雷達(dá)輻射源目標(biāo)信息的查詢速度快,并不影響用戶體驗時,以犧牲查詢效率的創(chuàng)建查詢結(jié)果臨時表的方式來進(jìn)行查詢。而當(dāng)雷達(dá)輻射源目標(biāo)信息的查詢速度慢,影響了用戶體驗時,一方面繼續(xù)創(chuàng)建查詢結(jié)果臨時表,另一方面開始創(chuàng)建查詢結(jié)果物化視圖以縮短用戶等待全部查詢結(jié)果的時間,從而達(dá)到用戶體驗和查詢效率之間的平衡。
類似于雷達(dá)輻射源目標(biāo)信息的信息,如敵我識別目標(biāo)信息、塔康目標(biāo)信息等,也會隨著其對應(yīng)信號偵測系統(tǒng)工作時間的累加產(chǎn)生大數(shù)據(jù)量的目標(biāo)信息。對于這一類相類似大數(shù)據(jù)量目標(biāo)信息的快速查詢工程應(yīng)用,可以通過本文述及的雷達(dá)輻射源目標(biāo)信息快速查詢方法進(jìn)行通用化設(shè)計,以總結(jié)出一種通用范式來加以解決。
首先,是大數(shù)據(jù)量目標(biāo)信息的存儲。根據(jù)雷達(dá)輻射源目標(biāo)信息的存儲方式,所有類似的信息均可采用信息子表加信息子表索引信息表存儲的方式[4],信息入庫端只需調(diào)用數(shù)據(jù)庫中的相應(yīng)存儲過程。例如,調(diào)用創(chuàng)建子表存儲過程sp_createrdwtable以及入庫存儲過程sp_addrdwtotable來存儲雷達(dá)輻射源目標(biāo)信息。
然后,是目標(biāo)信息查詢客戶端的設(shè)計。根據(jù)雷達(dá)輻射源目標(biāo)信息查詢客戶端的設(shè)計方式,可以總結(jié)出其中應(yīng)該包含的幾個關(guān)鍵要素:
(1) 需設(shè)置查詢時間段;
(2) 按照信號參數(shù)特點(diǎn)編輯查詢條件;
(3) 按照信號參數(shù)選擇排序字段及其排序方式(升序、降序);
(4) 可設(shè)置查詢結(jié)果表格顯示的行數(shù);
(5) 查詢結(jié)果臨時表是否設(shè)置主鍵;
(6) 可中斷查詢過程;
(7) 具有向上翻頁、向下翻頁和頁面跳轉(zhuǎn)功能;
(8) 具有查詢結(jié)果數(shù)據(jù)導(dǎo)出功能。
最后,是在數(shù)據(jù)庫服務(wù)器端創(chuàng)建與快速查詢相關(guān)的存儲過程。以雷達(dá)輻射源目標(biāo)信息快速查詢相關(guān)的存儲過程為例列舉如下:
(1) sp_getrdwtables:獲取滿足時間條件的雷達(dá)輻射源目標(biāo)信息子表序列的存儲過程;
(2) sp_getrdwtemptableandcount:由一張雷達(dá)輻射源目標(biāo)信息子表創(chuàng)建滿足查詢條件的臨時表并獲取表中目標(biāo)信息的條數(shù);
(3) sp_getrdwcountandcreateview:獲取雷達(dá)輻射源目標(biāo)信息子表序列中所有滿足查詢條件目標(biāo)信息的條數(shù)并創(chuàng)建查詢結(jié)果視圖;
(4) sp_insertrdwintotemptable:創(chuàng)建雷達(dá)輻射源目標(biāo)信息查詢結(jié)果臨時表并將查詢結(jié)果插入該表;
(5) sp_createmviewforrdw:由雷達(dá)輻射源目標(biāo)信息查詢結(jié)果視圖生成物化視圖。
雷達(dá)輻射源目標(biāo)信息查詢客戶端通過多線程技術(shù)調(diào)用以上5種存儲過程,可以實(shí)現(xiàn)雷達(dá)輻射源目標(biāo)信息的快速查詢。
當(dāng)應(yīng)用到敵我識別目標(biāo)信息數(shù)據(jù)庫時,設(shè)計考慮如下:
首先,在數(shù)據(jù)庫服務(wù)器端創(chuàng)建兩個存儲過程:sp_createifftable(敵我識別目標(biāo)信息子表創(chuàng)建存儲過程)和sp_addifftotable(敵我識別目標(biāo)信息入庫存儲過程),以存儲大數(shù)據(jù)量的敵我識別信息;
然后,根據(jù)目標(biāo)信息查詢客戶端設(shè)計的八個要素設(shè)計敵我識別目標(biāo)信息查詢客戶端,如圖4所示。
最后,在數(shù)據(jù)庫服務(wù)器上編寫與敵我識別目標(biāo)信息快速查詢相關(guān)的存儲過程,列表如下:
(1) sp_getifftables:獲取滿足時間條件的敵我識別目標(biāo)信息子表序列的存儲過程;
(2) sp_getifftemptableandcount:由一張敵我識別目標(biāo)信息子表創(chuàng)建滿足查詢條件的臨時表并獲取表中目標(biāo)信息的條數(shù);
圖4 敵我識別目標(biāo)信息查詢客戶端
(3) sp_getiffcountandcreateview:獲取敵我識別目標(biāo)信息子表序列中所有滿足查詢條件目標(biāo)信息的條數(shù)并創(chuàng)建查詢結(jié)果視圖;
(4) sp_insertiffintotemptable:創(chuàng)建敵我識別目標(biāo)信息查詢結(jié)果臨時表并將查詢結(jié)果插入該表;
(5) sp_createmviewforiff:由敵我識別目標(biāo)信息查詢結(jié)果視圖生成物化視圖。
敵我識別目標(biāo)信息查詢客戶端通過多線程技術(shù)調(diào)用以上5種存儲過程,即可以實(shí)現(xiàn)敵我識別目標(biāo)信息的快速查詢。
通過以上的介紹與分析,本文所介紹的雷達(dá)輻射源目標(biāo)信息快速查詢方法有效提高了大容量數(shù)據(jù)庫輻射源目標(biāo)信息查詢效率,在實(shí)際應(yīng)用中,該方法得到了充分的驗證。另一方面,通過通用化設(shè)計本查詢方法可以作為一種通用范式解決類似數(shù)據(jù)庫的查詢問題。
[1] Thomas Kyte. Oracle Database 9I/10G/11G編程藝術(shù)[M].北京:人民郵電出版社,2015:4.
[2] 丁士鋒,等. Oracle PL/SQL從入門到精通[M].北京:清華大學(xué)出版社,2012: 253.
[3] 楊建榮. Oracle DBA工作筆記[M].北京:中國鐵道出版社,2016:351.
[4] 林樹澤,等. Oracle DBA高可用、備份恢復(fù)與性能優(yōu)化[M].北京:清華大學(xué)出版社,2015:76.
A method of quickly searching target information of radar radiation sources
ZHANG Bi, SHAO Li-qin, CHEN Yuan-zhi
(No. 724 Research Institute of CSIC, Nanjing 211153)
A method of quickly searching the target information of the radar radiation sources is introduced. The implementation process and the relevant advantages of the method are described, and its high efficiency is verified through the test data. This method can be regarded as a general paradigm of searching similar types of information (such as IFF and TACAN, etc.) to rapidly get the data that meet the different search conditions from massive target information.
radar radiation source; storage procedure; multithreading; materialized view; paged query
TN757.52
A
1009-0401(2017)04-0062-04
2017-08-10;
2017-08-22
章碧(1983-),男,高級工程師,碩士,研究方向:數(shù)據(jù)庫設(shè)計與信號識別;邵立琴(1977-),女,工程師,研究方向:數(shù)據(jù)處理;陳遠(yuǎn)志(1970-),男,工程師,碩士,研究方向:軟件工程。