一种用于实时数据库查询结果快速排序的方法

文档序号:6525142阅读:376来源:国知局
一种用于实时数据库查询结果快速排序的方法
【专利摘要】一种用于实时库查询结果快速排序的方法,首先从用于变电站监控系统的实时数据库获取查询结果集;把这个查询结果集中用于排序的字段按顺序填入预先定义的数据结构;以数据结构为键,结果集中每条记录的顺序号为值,形成map的一个数据项;查询结果集处理完毕,全部存放到map中;从map中按顺序取出查询结果集中每条记录的顺序号,找到查询结果集中的对应记录;从map中取出记录对应的顺序号的次序,就是该记录在本次查询结果集中的排序位置。本发明解决现有实时数据库查询结果排序速度慢和效率低下,以CPU占用过高、算法复杂容易出错的问题,和系统采集到的数据不能及时显示到监控界面上、重要告警无法及时展示给变电站运行人员等严重问题。
【专利说明】一种用于实时数据库查询结果快速排序的方法
【技术领域】
[0001]本发明属于电力系统中变电站监控领域,尤其涉及的是一种用于实时数据库查询结果快速排序的方法。
【背景技术】
[0002]在现代化的社会中,电力系统是保障国民经济正常运行的重要基础设施,电力系统的大面积停电故障将直接对人民生活、国民经济产生直接的重大影响。变电站监控系统(变电站的数据采集与监控SCADA)是电力系统的重要组成部分,是对电力系统进行分析、监控的重要手段。尤其是随着计算机技术、通讯技术、自动化水平的不断提高,变电站自动化系统对电力系统安全、稳定、经济运行的重要性越来明显。
[0003]在现有变电站监控系统中,关键设备、关键节点的计算机必须配置很大的内存来满足实时数据库的需要,而实时数据库本身就是电力系统中各种监控软件普遍采用的数据存储方式。
[0004]对数据库查询结果的排序,是实时数据库应用中最常见的处理。常用的关系数据库系统(Oracle、MySQL等),对本身查询结果都能够实现非常方便、快捷地按照各种组合条件进行排序运算。然而,实时数据库对本身查询结果的排序运算却没有提供像关系数据库一样方便快捷的算法。对实时数据查询结果排序常用的方法有冒泡法,冒泡法对多字段查询结果排序时存在算法复杂、容易出错的问题,尤其严重的是冒泡法需要数据高强度运算,对CPU占用很高。举例说明,一个有2万条记录的查询结果集,需要对其中的3个整型数据字段和2个字符型字段进行排序运算,其整个排序过程将持续10多分钟时间。整个排序过程对CPU占用过高,使其它应用程序无法得到CPU的及时处理,导致采集到的数据不能及时显示到监控界面上,以及重要告警无法及时展示给变电站运行人员等严重问题。
[0005]本发明提出采用一种用于实时数据库查询结果快速排序的方法处理实施对实时数据库查询结果进行排序运算,该方法与之前方法有着本质的区别,在目前已公开的各种文献中没有检索到类似的方法。

【发明内容】

[0006]本发明的目的在于克服实时数据库查询结果排序算法复杂且容易出错的问题,数字化变电站、智能变电站等变电站监控系统的实时数据库对大结果集进行排序运算时,使用传统处理方法使系统CPU占用高,从而使其它重要应用程序无法得到及时处理,导致系统采集到的数据不能及时显示到界面上,以及重要告警无法及时展示给变电站运行人员等严重问题。为此,本发明提供了一种用于实时数据库查询结果快速排序的方法。
[0007]本发明解决其技术问题是采取以下技术方案实现的:
[0008]一种用于实时数据库查询结果快速排序的方法,其特征在于,所述快速排序的方法将实时数据库的任意查询结果集,经过快速排序运算,形成一个满足排序规则要求的新结果集。该方法的包括以下步骤:[0009](I)、从用于电力系统厂站端监控系统的实时数据库获取查询结果集;
[0010](2)、把查询结果集中每条记录的用于排序的字段按顺序填入预先定义的数据结构中;
[0011](3)、以填好的数据结构为主键,查询结果集中每条记录的顺序号为值,形成map的一个数据项;
[0012](4)、循环执行步骤(2)至步骤(3),直到全部查询结果集处理结束;
[0013](5)、从map中按顺序取出查询结果集中每条记录的顺序号;
[0014](6)、根据记录的顺序号,取出查询结果集中对应记录;
[0015](7)、循坏执行步骤(5)至步骤(6),完成查询结果集的排序过程。
[0016]本发明还进一步包括以下优选技术方案。
[0017]优选所述步骤(I)的从用于电力系统厂站端监控系统的实时数据库获取查询结果集的方法为:按照电力监控系统中变电站监控系统的实时数据库查询方法,从实时数据库获取查询结果集。
[0018]优选所述步骤(2)的把查询结果集中用于排序的字段按顺序填入事先定义的数据结构中的方法为:对步骤(I)得到查询结果进行处理,按照需要排序的字段次序,把查询结果集中每条记录的对应字段数据填写到预先定义的数据结构中。
[0019]优选在所述步骤(3)中,以这个数据结构为主键把查询结果集中每条记录的顺序号为值来形成map的一个数据项的方法为:为查询结果集中的每条记录编一个顺序号,这个顺序号唯一对应结果集中的一条记录;以步骤(2)填好数据的数据结构为主键,记录的唯一顺序号为值,形成map的一个数据项,填到map中。
[0020]优选在所述步骤(4 )中,循环执行步骤(2 )至步骤(3 )直到全部查询结果集处理结束的方法为:把实时数据库的查询结果集中所有记录,都按照步骤(2)至步骤(3)的处理方法,全部填到map中。
[0021]所述步骤(5)中,从map中按顺序取出查询结果集中每条记录的顺序号的方法为:从map中按次序取出查询结果集中每条记录的顺序号,从map中的取出次序就是按照排序字段要求在查询结果集中的排序位置。
[0022]在所述步骤(6)中,根据该记录的顺序号取出查询结果集中对应记录的方法为:由于记录的顺序号与结果集中的记录是一一对应的,故根据这个顺序号就找到查询结果集中对应的记录。
[0023]所述步骤(7)的完成查询结果集的排序过程的方法为:从map中依次取出记录的顺序号,取出的次序就是该记录在结果集中的排序位置,顺序号能够找到对应记录,这样就得到一条记录在查询结果集中的排序结果;循环取出map中所有记录的顺序号和顺序号对应的查询结果集中的记录,就形成了新的经过排序运算后的实时数据库的查询结果集。
[0024]本发明的优点及积极效果是:
[0025]本发明提出了采用用于实时数据库查询结果快速排序的方法,具有如下优点和积极效果:
[0026](I)大大缩短实时数据库查询结果排序时间。使用传统方法对查询结果进行排序,对一个有2万条记录的结果集,并其中3个整型数据字段和2个字符型字段进行排序,整个排序过程将持续10多分钟时间;采用用于实时数据库查询结果快速排序的方法后,对相同结果集进行排序时间仅为10多秒钟。为其它重要应用提供
[0027](2)大大简化排序算法的复杂度。只需设计几种数据结构,并定义对应的map类型即可实现对查询结果集的排序运算。
【专利附图】

【附图说明】
[0028]图1是本发明用于实时数据库查询结果快速排序的处理流程图。
【具体实施方式】
[0029]以下结合具体实施例对本发明方法做详细说明:
[0030]本发明涉及的是一种用于实时数据库查询结果快速排序的方法,对实时数据库查询结果排序进行处理,如图1所示,其具体方法步骤如下:
[0031]1、从用于电力系统厂站端监控系统的实时数据库获取查询结果集
[0032]所述步骤I的从用于电力系统厂站端监控系统的实时数据库获取查询结果集的方法为:按照电力监控系统中变电站监控系统的实时数据库查询方法,从实时数据库获取查询结果集。
[0033]2、把查询结果集中用于排序的字段按顺序填入事先定义的数据结构中
[0034]所述步骤2的把查询结果集中用于排序的字段按顺序填入事先定义的数据结构中的方法为:对步骤I得到查询结果进行处理,按照需要排序的字段次序,把查询结果集中每条记录的对应字段数据填写到预先定义的数据结构中。
[0035]3、以这个数据结构为主键把查询结果集中每条记录的顺序号为值来形成map的一个数据项
[0036]所述步骤3的以这个数据结构为主键把查询结果集中每条记录的顺序号为值来形成map的一个数据项的方法为:为查询结果集中的每条记录编一个顺序号,这个顺序号唯一对应结果集中的一条记录;以步骤2填好数据的数据结构为键,记录的唯一顺序号为值,形成map的一个数据项,填到map中。
[0037]4、循环执行步骤2至步骤3直到全部查询结果集处理结束
[0038]所述步骤4的循环执行步骤2至步骤3直到全部查询结果集处理结束的方法为:把实时数据库的查询结果集中所有记录,都按照步骤2至步骤3的处理方法,全部填到map中。
[0039]5、从map中按顺序取出查询结果集中每条记录的顺序号
[0040]所述步骤5的从map中按顺序取出查询结果集中每条记录的顺序号的方法为:从map中按次序取出查询结果集中每条记录的顺序号,从map中的取出次序就是按照排序字段要求在查询结果集中的排序位置。
[0041]6、根据该记录的顺序号取出查询结果集中对应记录
[0042]所述步骤6的根据该记录的顺序号取出查询结果集中对应记录的方法为:由于记录的顺序号与结果集中的记录是一一对应的,故根据这个顺序号就找到查询结果集中对应的记录。
[0043]7、循坏执行步骤5至步骤6完成查询结果集的排序过程
[0044]所述步骤7的循坏执行步骤5至步骤6完成查询结果集的排序过程的方法为:从map中依次取出记录的顺序号,取出的次序就是该记录在结果集中的排序位置,顺序号能够找到对应记录,这样就得到一条记录在查询结果集中的排序结果;循环取出map中所有记录的顺序号和顺序号对应的查询结果集中的记录,就形成了新的经过排序运算后的实时数据库的查询结果集。
【权利要求】
1.一种用于实时数据库查询结果快速排序的方法,其特征在于,所述快速排序的方法将实时数据库的任意查询结果集,经过快速排序运算,形成一个满足排序规则要求的新结果集。
2.根据权利要求1所述的用于实时数据库查询结果快速排序的方法,其特征在于,该方法的包括以下步骤: (1)、从用于电力系统厂站端监控系统的实时数据库获取查询结果集; (2)、把查询结果集中每条记录的用于排序的字段按顺序填入预先定义的数据结构中; (3)、以填好的数据结构为主键,查询结果集中每条记录的顺序号为值,形成map的一个数据项; (4)、循环执行步骤(2)至步骤(3),直到全部查询结果集处理结束; (5)、从map中按顺序取出查询结果集中每条记录的顺序号; (6)、根据记录的顺序号,取出查询结果集中对应记录; (7)、循坏执行步骤(5)至步骤(6),完成查询结果集的排序过程。
【文档编号】G06F17/30GK103646102SQ201310717023
【公开日】2014年3月19日 申请日期:2013年12月23日 优先权日:2013年12月23日
【发明者】姜闿笈, 余斌, 葛亮, 王立鼎, 房萍, 王申强, 潘合玉, 闫振义 申请人:北京四方继保自动化股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1