APP下载

一种雷达辐射源目标信息快速查询方法

2018-01-05邵立琴陈远志

雷达与对抗 2017年4期
关键词:辐射源线程视图

章 碧,邵立琴,陈远志

(中国船舶重工集团公司第七二四研究所,南京 211153)

一种雷达辐射源目标信息快速查询方法

章 碧,邵立琴,陈远志

(中国船舶重工集团公司第七二四研究所,南京 211153)

介绍了一种雷达辐射源目标信息快速查询方法,描述了该方法的实施流程和相关优点,通过实验数据证明了其高效性。该方法可以作为相似类型信息(如敌我识别信息、塔康信息等)查询功能的通用范式,实现在大数据量目标信息中快速获取满足不同查询条件的目标信息数据。

雷达辐射源;存储过程;多线程;物化视图;分页查询

0 引 言

雷达侦测系统通过对接收的辐射源信号进行处理而获得辐射源目标参数信息,并将这些信息存储在系统数据库中。随着系统工作时间的不断累加,数据库中存储的雷达辐射源目标参数信息量也将不断增大,如果不采取高效率措施,则对于数据库中的雷达辐射源目标信息的查询时间也将会越来越长。本文针对辐射源数据库大数据量与查询效率的矛盾,提出优化设计方法。对大数据量的雷达辐射源目标信息,一方面进行存储方式的改造,另一方面重新设计查询方式,使得雷达辐射源目标信息的查询功能在数据库服务器端和数据库客户端之间达到资源利用和查询效率的优化,并进行通用化处理,使其成为一种相似类型数据库信息查询功能的通用范式。

1 雷达辐射源目标信息的存储

随着雷达侦测系统工作时间的累加,辐射源信息数据的不断加入,如果数据库服务器采用单个表格来存储雷达辐射源目标信息,则该表格将会成为一张巨表。而查询一张巨表,往往意味着数据库客户端需要从服务器端的数据文件中读取大量信息(硬解析[1]),在查询过程中存在频繁的数据I/O,不仅耗用大量计算机资源而且影响查询效率。有鉴于此,利用单张表格存储雷达辐射源目标信息的方式通常不可取,取而代之的是使用多张表格来进行存储。

对表格的拆分一般分为横向切割和纵向切割两种。考虑到巨表行数过多,因此考虑对巨表进行横向切割,即当表中数据行数达到一定数量时,将其切割为一张子表。为了将多个子表进行逻辑上的关联,可以考虑将所有子表的关联数据进行记录,即建立一张子表的索引信息表,如表1所示。

表1雷达辐射源目标信息子表索引信息表

从以上索引信息表中可以看出,当一张雷达辐射源目标信息子表存储的信息数为一百万批时,会用另一张子表继续存储雷达辐射源目标信息。那么,在查询雷达辐射源目标信息的时候,可以根据时间条件从其索引信息表中找到一个或者多个雷达辐射源目标信息子表,从而减小数据筛选的范围。

为了实现雷达辐射源目标信息的分表存储,设计采用两个存储过程来实现,分别为创建子表存储过程sp_createrdwtable和入库存储过程sp_addrdwtotable。前者根据已存的子表个数N-1(N为正整数)创建一个编号为N的子表T_RDW_INFO_N(N为八位整数,不足八位则前面补零),后者则向当前或者下一编号的子表中插入一条雷达辐射源目标信息,并更新索引表中相应子表的记录,具体流程如图1所示。

图1 入库存储过程sp_addrdwtotable流程图

2 雷达辐射源目标信息快速查询

为了提高雷达辐射源目标信息查询速度,需要解决以下问题:

(1) 查询结果的条数在十万级甚至百万级的数据时,通常导致系统查询结果显示资源相对不足;

(2) 数据查询过程耗费时间往往比较长,几分钟甚至十几分钟;

(3) 数据查询过程耗费网络资源多。

针对查询结果显示资源的不足问题,设计将查询结果进行分页显示,每次仅显示一页查询结果,同时应具有向上翻页、向下翻页和页面跳转的功能。

针对查询过程耗费时间长问题,设计在查询过程中将已查询到的部分结果先进行显示,而不必等待查询过程运行完毕,同时应该具有在查询过程中随时中止查询的功能。

针对查询过程耗费网络资源多问题,设计减少查询客户端与服务器端之间的数据交换,即利用查询客户端向服务器端传递相应存储过程中的参数,查询过程由性能更高的服务器端完成,同时查询结果也放在服务器端。

通过以上措施,得到查询结果的过程将会是利用存储过程持续生成的方式,在这个过程中可以分页查询已经生成的部分结果。为了实现快速查询,可以采用多线程技术,一边在服务器端生成查询结果,一边在客户端读取查询结果。

线程1查询客户端通过向服务器端传递存储过程参数,包括查询条件、查询结果显示方式等,调用服务器端中的相关存储过程,生成查询结果临时表。实现的具体流程如图2所示。

图2 生成查询结果临时表线程流程图

线程2每隔一秒查询一次线程1中生成的查询结果临时表,得到查询结果数并显示,同时得到查询结果的总页数作为向上翻页、向下翻页和页面跳转的依据。

查询客户端根据分页查询的显示行数、排序字段和页码等,从线程1中生成的查询结果临时表中读取一页查询结果。

这种雷达辐射源目标信息查询方法的优点是:

(1) 查询结果显示资源占用小,显示速度快;

(2) 能快速得到查询结果,虽然不一定是全部查询结果;

(3) 减少了查询客户端与服务器端网络之间的数据交换。

另一方面,在创建查询结果临时表的过程中存在遍历子表的过程,而查询结果临时表中的约束条件,即表格主键的设置,有可能导致大量目标信息插值行为无效,降低查询结果临时表生成的效率,或者由于查询条件的复杂,在子表中筛选满足查询条件的目标信息时本身效率就不高。为了解决可能存在的查询效率低现象,可以再引入一个线程,快速获取所有查询结果。

线程3查询客户端通过向服务器端传递存储过程参数,包括查询条件、查询结果显示方式等,调用服务器端中的相关存储过程,先生成查询结果视图,再将查询结果视图转化成物化视图[2]。实现的具体流程如图3所示。

图3 生成查询结果物化视图线程流程图

同时,考虑到生成查询结果物化视图的过程往往需要耗费一定的时间(比生成查询结果临时表耗费的时间短),但是在这段时间内无法读取物化视图中的数据。针对该问题,系统设计在查询结果物化视图生成完成之后,中止线程1中查询结果临时表的生成和线程2中的定时查询。查询客户端根据分页查询的显示行数、排序字段和页码等,从线程3中生成的查询结果物化视图中读取一页查询结果。

在实际数据库使用中,例如选定系统正常工作时间中跨度为2天的一段时间。该时间段内存储的目标总数约为270万条,查询条件为目标国籍为单一某国,对雷达辐射源目标信息进行查询,最终得到253批查询结果,利用线程1查询时耗时3分27秒,而利用线程3查询时耗时仅为16秒。

在雷达辐射源目标信息查询过程中,先启用线程1和线程2,如果在运行线程1时出现查询缓慢的情况,则启用线程3。不论是线程1中生成的查询结果临时表还是线程3中生成的查询结果物化视图,都可以方便地以外部表等方式进行数据文件导出。

3 雷达辐射源目标信息快速查询效率分析

对雷达辐射源目标信息存储的优化,一方面加大了目标信息存储结构的复杂度,另一方面却令目标信息在入库过程中,主键约束[3]的判定,由巨表主键切换成普通表主键,最终反而提升了目标信息入库的效率。在查询雷达辐射源目标信息时,根据查询时间段从雷达辐射源目标索引信息表中可以快速定位查询结果所在的子表序列,进而提升查询效率。

利用线程1创建查询结果临时表,在查询条件仅限于时间段且查询结果没有主键约束时,与利用线程3创建查询结果物化视图的实际过程相仿,效率差别小。而在查询条件复杂的条件下,创建临时表的过程往往需要遍历多张目标信息子表,可能存在大量的查询条件判断和无效信息插值,从而影响临时表创建的效率。

利用线程3创建查询结果物化视图的效率高,但是查询客户端无法在查询结果物化视图的创建过程中获取物化视图中的查询结果。当查询结果中数据量大,例如达到十万级时,需要等待比较长,无法快速地获得一部分查询结果,从而影响查询客户端用户的体验。

考虑到查询客户端用户的体验,可以采用线程1和线程2结合的方式;考虑到查询效率,可以采用线程3的方式。

上述的雷达辐射源目标快速查询方法是在用户体验和查询效率之间进行取舍,即以用户体验为优先。当雷达辐射源目标信息的查询速度快,并不影响用户体验时,以牺牲查询效率的创建查询结果临时表的方式来进行查询。而当雷达辐射源目标信息的查询速度慢,影响了用户体验时,一方面继续创建查询结果临时表,另一方面开始创建查询结果物化视图以缩短用户等待全部查询结果的时间,从而达到用户体验和查询效率之间的平衡。

4 大数据量目标信息快速查询范式

类似于雷达辐射源目标信息的信息,如敌我识别目标信息、塔康目标信息等,也会随着其对应信号侦测系统工作时间的累加产生大数据量的目标信息。对于这一类相类似大数据量目标信息的快速查询工程应用,可以通过本文述及的雷达辐射源目标信息快速查询方法进行通用化设计,以总结出一种通用范式来加以解决。

首先,是大数据量目标信息的存储。根据雷达辐射源目标信息的存储方式,所有类似的信息均可采用信息子表加信息子表索引信息表存储的方式[4],信息入库端只需调用数据库中的相应存储过程。例如,调用创建子表存储过程sp_createrdwtable以及入库存储过程sp_addrdwtotable来存储雷达辐射源目标信息。

然后,是目标信息查询客户端的设计。根据雷达辐射源目标信息查询客户端的设计方式,可以总结出其中应该包含的几个关键要素:

(1) 需设置查询时间段;

(2) 按照信号参数特点编辑查询条件;

(3) 按照信号参数选择排序字段及其排序方式(升序、降序);

(4) 可设置查询结果表格显示的行数;

(5) 查询结果临时表是否设置主键;

(6) 可中断查询过程;

(7) 具有向上翻页、向下翻页和页面跳转功能;

(8) 具有查询结果数据导出功能。

最后,是在数据库服务器端创建与快速查询相关的存储过程。以雷达辐射源目标信息快速查询相关的存储过程为例列举如下:

(1) sp_getrdwtables:获取满足时间条件的雷达辐射源目标信息子表序列的存储过程;

(2) sp_getrdwtemptableandcount:由一张雷达辐射源目标信息子表创建满足查询条件的临时表并获取表中目标信息的条数;

(3) sp_getrdwcountandcreateview:获取雷达辐射源目标信息子表序列中所有满足查询条件目标信息的条数并创建查询结果视图;

(4) sp_insertrdwintotemptable:创建雷达辐射源目标信息查询结果临时表并将查询结果插入该表;

(5) sp_createmviewforrdw:由雷达辐射源目标信息查询结果视图生成物化视图。

雷达辐射源目标信息查询客户端通过多线程技术调用以上5种存储过程,可以实现雷达辐射源目标信息的快速查询。

当应用到敌我识别目标信息数据库时,设计考虑如下:

首先,在数据库服务器端创建两个存储过程:sp_createifftable(敌我识别目标信息子表创建存储过程)和sp_addifftotable(敌我识别目标信息入库存储过程),以存储大数据量的敌我识别信息;

然后,根据目标信息查询客户端设计的八个要素设计敌我识别目标信息查询客户端,如图4所示。

最后,在数据库服务器上编写与敌我识别目标信息快速查询相关的存储过程,列表如下:

(1) sp_getifftables:获取满足时间条件的敌我识别目标信息子表序列的存储过程;

(2) sp_getifftemptableandcount:由一张敌我识别目标信息子表创建满足查询条件的临时表并获取表中目标信息的条数;

图4 敌我识别目标信息查询客户端

(3) sp_getiffcountandcreateview:获取敌我识别目标信息子表序列中所有满足查询条件目标信息的条数并创建查询结果视图;

(4) sp_insertiffintotemptable:创建敌我识别目标信息查询结果临时表并将查询结果插入该表;

(5) sp_createmviewforiff:由敌我识别目标信息查询结果视图生成物化视图。

敌我识别目标信息查询客户端通过多线程技术调用以上5种存储过程,即可以实现敌我识别目标信息的快速查询。

5 结束语

通过以上的介绍与分析,本文所介绍的雷达辐射源目标信息快速查询方法有效提高了大容量数据库辐射源目标信息查询效率,在实际应用中,该方法得到了充分的验证。另一方面,通过通用化设计本查询方法可以作为一种通用范式解决类似数据库的查询问题。

[1] Thomas Kyte. Oracle Database 9I/10G/11G编程艺术[M].北京:人民邮电出版社,2015:4.

[2] 丁士锋,等. Oracle PL/SQL从入门到精通[M].北京:清华大学出版社,2012: 253.

[3] 杨建荣. Oracle DBA工作笔记[M].北京:中国铁道出版社,2016:351.

[4] 林树泽,等. Oracle DBA高可用、备份恢复与性能优化[M].北京:清华大学出版社,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-),男,高级工程师,硕士,研究方向:数据库设计与信号识别;邵立琴(1977-),女,工程师,研究方向:数据处理;陈远志(1970-),男,工程师,硕士,研究方向:软件工程。

猜你喜欢

辐射源线程视图
实时操作系统mbedOS 互斥量调度机制剖析
基于博弈论的GRA-TOPSIS辐射源威胁评估方法
基于国产化环境的线程池模型研究与实现
数字电视外辐射源雷达多旋翼无人机微多普勒效应实验研究
外辐射源雷达直升机旋翼参数估计方法
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
分布式数字广播电视外辐射源雷达系统同步设计与测试
Django 框架中通用类视图的用法