CN102769532B - 网管服务器及其将查询结果导出成Excel文件的方法 - Google Patents
网管服务器及其将查询结果导出成Excel文件的方法 Download PDFInfo
- Publication number
- CN102769532B CN102769532B CN201110112844.1A CN201110112844A CN102769532B CN 102769532 B CN102769532 B CN 102769532B CN 201110112844 A CN201110112844 A CN 201110112844A CN 102769532 B CN102769532 B CN 102769532B
- Authority
- CN
- China
- Prior art keywords
- view
- inquiry
- query result
- head table
- title
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种网管服务器及其将查询结果导出成Excel文件的方法,上述方法为:网管服务器收到查询结果导出到Excel请求时,创建查询语句,根据上述查询语句,获取查询结果的标题头信息,生成标题头表,再根据上述查询语句,生成查询视图,然后根据上述标题头表及上述查询视图,生成BCP命令,将查询结果写入Excel文件中。本发明使得在导出同样数据量的查询结果数据时所消耗的时间减少,且占用系统资源降低。
Description
技术领域
本发明涉及网络性能管理领域,尤其涉及一种网管服务器及其将查询结果导出成Excel文件的方法。
背景技术
在移动通信系统中,设备的性能数据是通过对基站上报的数据进行取样、计算、分析得到的一种量化管理数据,是反映整个设备运行状态的最直观体现,对于大规模商用网络的网络规划、优化等起着重要的作用。
目前的网管系统的性能管理提供了性能数据查询以及导出功能,运营商或网优工作人员可以根据需要将系统运行数据按照设备、时间查询并导出数据到Excel进行汇总分析并存档,以掌握本地网络的整体情况,以指导定位问题或进行网络优化。
现有的网管服务器将设备性能数据的查询结果导出到Excel文件的方法主要包括以下步骤:
1、查询网管性能数据库,获取性能数据查询结果集;
2、将查询结果集加载入内存;
3、循环调用Apache Excel API POI,将查询结果写入到Excel文件中。
从步骤1和步骤2可以看出,这两步占用了数据库资源和内存资源;步骤3中使用POI的方式,将查询结果写入Excel文件,这种方式首先根据查询结果生成XML(ExtensibleMarkup Language,可扩展标记语言)文件并将其载入内存,然后再写入Excel。在实际应用中,要导出的查询结果数据量通常会比较大,往往达到10万级以上,使用上述方法对查询结果进行Excel导出操作,占用的系统内存资源比较大,而且耗时较长,并且随着数据量的增大占用的系统内存以及所耗时间增幅较大;因查询结果导出到Excel文件中的操作使用是比较频繁的,如果短期内频繁的执行该操作的话,网管服务器会采用多个线程并发处理,这样每个导出所需要的时间就被拉长了,在这段时间内的每个线程申请的内存空间都在使用状态,前一次的大数据量导出还没有完成,后一次导出操作又开始执行,最终会导致网管服务器内存耗尽。同时查询结果数据导出到Excel文件的频繁执行,会导致内存在短时间内被填满,使得其他线程申请不到内存,会导致服务的异常。
发明内容
本发明的目的在于,提供一种网管服务器机器将查询结果导出成Excel文件的方法,以优化现有技术在导出查询结果数据时消耗时间长、占用系统资源多的问题。
本发明提供了一种网管服务器将查询结果导出成Excel文件的方法,包括以下步骤:
网管服务器收到查询结果导出到Excel请求时,创建查询语句;
根据上述查询语句,获取查询结果的标题头信息,生成标题头表;
根据上述查询语句,生成查询视图;
根据上述标题头表及上述查询视图,生成BCP命令,将查询结果写入Excel文件中。
优选地,上述根据查询语句,生成查询视图步骤具体包括以下步骤:
根据上述查询语句,生成临时视图;
遍历上述临时视图,将查询结果字段的数据类型转换成字符类型,得到查询视图。
优选地,上述方法通过convert语句将上述查询结果字段的数据类型转换成字符类型。
优选地,上述根据标题头表及查询视图,生成BCP命令步骤具体为:
将上述标题头表的select语句与上述查询视图的select语句通过union all合并,生成BCP命令。
本发明进一步提供了一种网管服务器,包括查询语句创建模块、标题头表生成模块、查询视图生成模块、以及BCP命令生成模块,
上述查询语句创建模块,用于根据收到的查询结果导出到Excel请求,创建查询语句;
上述标题头表生成模块,用于根据上述查询语句创建模块创建的查询语句,获取查询结果的标题头信息,生成标题头表;
上述查询视图生成模块,用于根据上述查询语句创建模块创建的查询语句,生成查询视图;
上述BCP命令生成模块,用于根据上述标题头表生成模块生成的标题头表及上述查询视图生成模块生成的查询视图,生成BCP命令,并将查询结果写入Excel文件中。
优选地,上述查询视图生成模块,还用于生成临时视图,并通过convert语句遍历上述临时视图,将上述临时视图的查询结果字段的数据类型转换成字符类型;
上述BCP命令生成模块,还用于通过union all合并上述标题头表生成模块生成的标题头表的select语句与上述查询视图生成模块生成的查询视图的select语句。
与现有技术相比,一方面,本发明无需查询SQL Server数据库,减少了数据库的压力,使得在导出同样数据量的查询结果数据时所消耗的时间减少,且占用系统资源降低,尤其是在数据量大时,本发明表现更优异;另一方面,本发明使用SQL Server提供的BCP命令,将查询结果导入到Excel文件,实现了标题内容和数据内容的一并导出且格式正确。本发明适用于移动通信系统。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明网管服务器将查询结果导出成Excel文件的方法流程图;
图2是相同运行环境相同负荷下,本发明的方法和现有的方法导出相同数据量的查询结果数据消耗的时间对比图;
图3是相同运行环境相同负荷下,本发明的方法和现有的方法导出相同数据量的查询结果数据占用系统内存的对比图;
图4是本发明网关服务器的原理框图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
如图1所示,是本发明网管服务器将查询结果导出成Excel文件的方法流程图,包括以下步骤:
步骤S001:网管服务器收到查询结果导出到Excel请求;
步骤S002:根据上述请求,创建查询语句;
步骤S003:根据上述查询语句,获取查询结果的标题头信息,生成标题头表;
本步骤无需实际查询数据库中的性能数据,这样与数据库链接时间较短,而且省去了查询数据库大量数据所占用的系统内存资源。
步骤S004:根据上述查询语句,生成临时视图,遍历上述临时视图,通过convert语句将查询结果字段的数据类型转换成字符类型,生成查询视图;
因SQL(Structured Query Language,结构化查询语言)查询语句较长,其总字符长度可能会超过SQL Server数据库的BCP中的SQL语句的长度,故本步骤中的临时视图是为了使查询语句能够完整而创建的,只是一个临时的虚的视图。
本步骤使得查询视图的数据类型与上述标题头表的数据类型一致。
步骤S005:将上述标题头表的select语句与上述查询视图的select语句通过union all合并,生成BCP命令,将查询结果写入Excel文件中。
BCP命令是SQL Server数据库中负责导入导出数据的一个命令行工具,它能以并行的方式高效地导入导出大批量的数据,但是该命令只能导出数据,不能导出标题头,需要应用程序自己处理表头和数据的导出问题,并且导出语句存在长度以及导出数据类型不一致的问题。本发明通过convert语句将查询结果字段的数据类型转换成字符类型,使得查询视图的数据类型与标题头表的数据类型一致,并通过使用union all将标题头表的select语句和查询视图的select语句合并,保证了内容导出到Excel后,标题头的内容位于查询结果数据内容的上方,处于合理的位置,即实现了标题内容和数据内容的一并导出。
如图2所示,是相同运行环境相同负荷下,本发明的方法和现有的方法导出相同数据量的查询结果数据消耗的时间对比图;图中,实线表示本发明的方法导出相同数据量的查询结果数据消耗的时间曲线,虚线表示现有的方法导出相同数据量的查询结果数据消耗的时间曲线。
假设网管服务器无其他的负载,本测试对导出相同的12列基站性能数据进行5次试验(横轴),可以看出现有的方法随着导出数据量的增大,消耗的时间大幅增加,甚至在数据量达到20万条时,已经无法导出数据,而本发明的方法在导出同样数据量的查询结果数据所消耗的时间要低很多,在数据量达到20万条时,也只需要17s的时间。本发明对于查询结果导出时间上的缩短,帮助了网管系统节省系统资源,应用程序也能够更快的释放占用的资源以便其他程序使用。
如图3所示,是相同运行环境相同负荷下,本发明的方法和现有的方法导出相同数据量的查询结果数据占用系统内存的对比图;图中,实线表示本发明的方法导出相同数据量的查询结果数据占用系统内存曲线,虚线表示现有的方法导出相同数据量的查询结果数据占用系统内存曲线。
本测试对导出相同的12列基站性能数据进行5次试验(横轴),可以看出,现有方法随着数据量的增大,所占用内存大小大幅的增大,导出20万条数据量时已经占用到了650M;而采用本发明的方法,省去了将查询结果载入内存这一步,并且采用的是SQL Server数据库本身的BCP命令,在处理大规模数据方面表现优异,所内存占用明显比较少,数据量达到20万条时,只占用了300M内存,比现有方法所占内存的一半还少,占用的系统资源大幅的降低,使得服务器的资源可以应对更大量数据导出的应用场景。
如图4所示,是本发明网关服务器的原理框图,本实施例包括查询语句创建模块01、标题头表生成模块02、查询视图生成模块03、以及BCP命令生成模块04,
查询语句创建模块01,用于根据收到的查询结果导出到Excel请求,创建查询语句;
标题头表生成模块02,用于根据查询语句创建模块01创建的查询语句,获取查询结果的标题头信息,生成标题头表;
查询视图生成模块03,用于根据查询语句创建模块01创建的查询语句,生成临时视图,并通过convert语句遍历上述临时视图,将上述临时视图的查询结果字段的数据类型转换成字符类型,生成查询视图;
BCP命令生成模块04,用于通过union all合并标题头表生成模块02生成的标题头表的select语句与查询视图生成模块03生成的查询视图的select语句生成BCP命令,并将查询结果写入Excel文件中。
上述说明示出并描述了本发明的优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
Claims (5)
1.一种网管服务器将查询结果导出成Excel文件的方法,其特征在于,包括以下步骤:
网管服务器收到查询结果导出到Excel请求时,创建查询语句;
根据所述查询语句,获取查询结果的标题头信息,生成标题头表;
根据所述查询语句,生成查询视图;
根据所述标题头表及所述查询视图,生成BCP命令,将查询结果写入Excel文件中;其中,所述根据查询语句,生成查询视图步骤具体包括以下步骤:根据所述查询语句,生成临时视图;遍历所述临时视图,将查询结果字段的数据类型转换成字符类型,得到查询视图,其中,生成的查询视图的数据类型与所述标题头表的数据类型一致。
2.根据权利要求1所述的方法,其特征在于,所述方法通过convert语句将所述查询结果字段的数据类型转换成字符类型。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述根据标题头表及查询视图,生成BCP命令步骤具体为:
将所述标题头表的select语句与所述查询视图的select语句通过union all合并,生成BCP命令。
4.一种网管服务器,其特征在于,包括查询语句创建模块、标题头表生成模块、查询视图生成模块、以及BCP命令生成模块,
所述查询语句创建模块,用于根据收到的查询结果导出到Excel请求,创建查询语句;
所述标题头表生成模块,用于根据所述查询语句创建模块创建的查询语句,获取查询结果的标题头信息,生成标题头表;
所述查询视图生成模块,用于根据所述查询语句创建模块创建的查询语句,生成查询视图;
所述BCP命令生成模块,用于根据所述标题头表生成模块生成的标题头表及所述查询视图生成模块生成的查询视图,生成BCP命令,并将查询结果写入Excel文件中;
所述查询视图生成模块,还用于生成临时视图,并通过convert语句遍历所述临时视图,将所述临时视图的查询结果字段的数据类型转换成字符类型,得到查询视图,其中,生成的查询视图的数据类型与所述标题头表的数据类型一致。
5.根据权利要求4所述的网管服务器,其特征在于,
所述BCP命令生成模块,还用于通过union all合并所述标题头表生成模块生成的标题头表的select语句与所述查询视图生成模块生成的查询视图的select语句。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110112844.1A CN102769532B (zh) | 2011-05-03 | 2011-05-03 | 网管服务器及其将查询结果导出成Excel文件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110112844.1A CN102769532B (zh) | 2011-05-03 | 2011-05-03 | 网管服务器及其将查询结果导出成Excel文件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102769532A CN102769532A (zh) | 2012-11-07 |
CN102769532B true CN102769532B (zh) | 2017-03-15 |
Family
ID=47096791
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110112844.1A Active CN102769532B (zh) | 2011-05-03 | 2011-05-03 | 网管服务器及其将查询结果导出成Excel文件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102769532B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500196B (zh) * | 2013-09-22 | 2016-09-14 | 成都交大光芒科技股份有限公司 | 多并发大数据量环境下excel数据导出方法及其导出装置 |
CN106598983A (zh) * | 2015-10-16 | 2017-04-26 | 北京国双科技有限公司 | 信息显示方法及装置 |
CN108207037B (zh) * | 2016-12-19 | 2023-12-08 | 通号通信信息集团上海有限公司 | 具有网管功能的铁路区间无线组网对讲系统及其应用 |
CN110955674B (zh) * | 2019-10-21 | 2022-09-06 | 江苏苏宁物流有限公司 | 基于java服务的异步导出方法及组件 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098495A (zh) * | 2007-06-14 | 2008-01-02 | 中兴通讯股份有限公司 | 一种提高智能业务在线统计任务性能的系统及方法 |
CN101639839A (zh) * | 2008-07-30 | 2010-02-03 | 中兴通讯股份有限公司 | 一种基于临时表的多归档文件查询方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7647312B2 (en) * | 2005-05-12 | 2010-01-12 | Microsoft Corporation | System and method for automatic generation of suggested inline search terms |
-
2011
- 2011-05-03 CN CN201110112844.1A patent/CN102769532B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101098495A (zh) * | 2007-06-14 | 2008-01-02 | 中兴通讯股份有限公司 | 一种提高智能业务在线统计任务性能的系统及方法 |
CN101639839A (zh) * | 2008-07-30 | 2010-02-03 | 中兴通讯股份有限公司 | 一种基于临时表的多归档文件查询方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102769532A (zh) | 2012-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107844424B (zh) | 基于模型的测试系统及方法 | |
CN102799622B (zh) | 基于MapReduce扩展框架的分布式SQL查询方法 | |
CN102769532B (zh) | 网管服务器及其将查询结果导出成Excel文件的方法 | |
CN105528337B (zh) | 一种数据转换实现性能管理系统导出ppt报表的方法 | |
WO2021223451A1 (zh) | 汽车生产动作数据采集方法、系统、装置和存储介质 | |
CN105516024B (zh) | 一种基于队列的任务流量监控方法及系统 | |
CN109857756B (zh) | 数据库报表的生成方法、装置、设备及可读存储介质 | |
CN113806429B (zh) | 基于大数据流处理框架的画布式日志分析方法 | |
WO2021012861A1 (zh) | 数据查询耗时评估方法、装置、计算机设备和存储介质 | |
CN112631754A (zh) | 数据处理方法、装置、存储介质及电子装置 | |
CN109445754A (zh) | 数据集成访问装置、方法及存储介质 | |
CN105550333A (zh) | 基于MongoDB的测试数据存储查询方法及系统 | |
CN110825775A (zh) | 一种Gaia系统中支持流数据与批数据交互的数据交换系统 | |
CN107169047A (zh) | 一种实现数据缓存的方法及装置 | |
CN106547860B (zh) | 一种分布式数据库性能故障的定位方法 | |
CN110765083B (zh) | 一种智能变电站的数据转发设备及其内存优化方法 | |
CN101895426B (zh) | 一种网络资源评估中的数据采集方法及系统 | |
CN107463487A (zh) | 一种分布式主机性能采集系统及性能采集方法 | |
CN101751260A (zh) | 一种基于动态标签的业务对象持久化处理方法 | |
CN105630997A (zh) | 一种数据并行处理方法、装置及设备 | |
CN110059107A (zh) | 计划优化方法、装置、系统及计算机可读存储介质 | |
CN110264009A (zh) | 一种共享汽车调度系统及其调度方法 | |
CN107729410A (zh) | 一种适用于电力设备大数据的数据库引擎 | |
CN105786945B (zh) | 一种基于数据通道的用电信息数据高效处理方法 | |
CN109213778A (zh) | 一种流数据滑动窗口聚集查询方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201105 Address after: No.3, Tonghai Road, chuegang Town, Rudong County, Nantong City, Jiangsu Province, 226400 Patentee after: Rudong Dongguang Logistics Co., Ltd Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice Patentee before: ZTE Corp. |
|
TR01 | Transfer of patent right |