小湾水电站工程安全监测自动化系统性能优化

2014-02-27 10:24占亮亮周锡琅
大坝与安全 2014年3期
关键词:性能优化安全监测

占亮亮,周锡琅

(国网电力科学研究院南京南瑞集团公司,江苏南京,210003)

小湾水电站工程安全监测自动化系统性能优化

占亮亮,周锡琅

(国网电力科学研究院南京南瑞集团公司,江苏南京,210003)

介绍了小湾水电站工程安全监测自动化系统的当前运行状况,通过对系统运行缓慢进行原因分析,提出了系统优化方案,并进行实施和测试。优化后的系统运行速度较优化前有较大提高,且能达到预先提出的性能目标。关键词:性能优化;数据分区;安全监测

0 概述

小湾水电站工程是国家实施西部大开发、“西电东送”战略的标志性工程,位于云南省西部南涧县与凤庆县交界的澜沧江中游河段,系澜沧江中下游河段规划的八个梯级中的第二级。工程属一等大(1)型工程,以发电为主,兼有防洪、灌溉、养殖和旅游等综合利用效益。枢纽工程由混凝土双曲拱坝(坝高294.5 m)、坝后水垫塘及二道坝、左岸泄洪洞及右岸地下引水发电系统组成。水库总库容为149.14亿m3,电站总装机容量4 200 MW。

小湾水电站枢纽区工程安全监测自动化系统由南京南瑞集团公司实施,目前包括左岸拱坝、右岸拱坝、左岸坝肩抗力体、右岸坝肩抗力体、地下引水发电系统洞室群、高边坡监测等6个区域子系统。其中纳入自动化系统的各类监测仪器近6 000支,自动化测点8 463个,人工及虚拟测点3 260个,测点总数共计11 723个。数据时间从2008年12月-2013年11月,约5年的测值记录总数约4千万条。以每个测点平均每天2-3条的数据计算,一年大概有近1千万条数据需要存储入库。

由于系统测点之多,数据量之大,导致工程安全监测自动化系统运行缓慢。日常使用系统进行数据查询、成果分析和数据输出时,速度慢、耗时长,严重影响系统可用性和日常工作。因此,需要对系统性能进行全面检测分析,并进行相关的性能优化。

1 优化目标

本着系统运行可靠性、高效性和日常工作效率的需要,主要对日常数据查询、成果分析和数据输出效率以及系统后台性能进行优化。

具体需要优化的内容包括:提高数据表格查询速度、提高过程线查询速度、提高报表查询速度、提高前台涉及数据查询业务应用的速度、提高后台涉及数据查询的接口函数速度。具体优化效率目标见表1。

2 系统分析

根据前面提出的优化目标及要求,需要对系统应用进行全面分析。通常这种造成应用程序运行缓慢的原因,主要可以从应用程序自身问题、数据库问题和硬件设备问题去查找分析。根据系统运行现状初步分析及以往经验,首先排除硬件设备的问题,重点放在应用程序和数据库性能两方面问题查找。

表1 优化效率目标表Table 1 Goals of the optimized efficiency

通过对系统应用的详细分析,找出系统各关键功能节点以及可能耗时的代码位置,然后在这些关键位置加入调试代码,并输出每个功能节点的耗时情况。系统功能运行结构见图1。

图1 系统功能运行结构图Fig.1 The functional structure of the system

通过对输出的各功能节点耗时情况进行分析,发现系统主要在数据表查询耗时较长,其中耗时长的部分主要是在ADO(数据库访问组件)访问数据库查询数据的过程。耗时分析见图2。

为了检查是否是ADO数据访问组件造成的长耗时,通过SQL Server自带的查询分析器进行数据查询分析测试,发现比前面测试的快一些,但耗时也非常长。进一步分析发现,测值数据表中的数据非常庞大,有近4千万的数据。单表4千万的数据非常大,查询效率慢也可想而之。根据以往经验分析,单表的数据量超过300万条(这个数据会根据硬件的不同而会有所不同)可能会影响数据查询速度。应用程序中也有一些不必要的查询开销和SQL语句可以优化。综上分析,需要对应用程序进行优化,重点需要对测量数据表进行优化处理。

图2 数据查询耗时分析Fig.2 Analysis of the time consumed in data query

3 系统优化设计

根据系统分析结果,确定了主要需要优化的内容,包括应用程序优化和数据库优化。

3.1 应用程序优化方案

(1)批量查询测点信息,将原来单条测点信息查询的代码改为多点批量查询。

(2)限定特征值测点查询范围,原来时间选择框默认打开时会查询系统所有测值的最大最小时间,改为按实际需要查询最大最小时间,只当选择“全部”时才查询当前传入的测点时间范围,以提高用户体验。

(3)SQL查询语句优化,按照SQL查询语句优化标准,比如原来数据查询用到“in”查询,拆为“=”查询,包括一些嵌套查询等。

3.2 数据库优化方案

通过分析测值数据表数据发现,测值记录数约为4千万条,数据空间约5G,索引空间约10G。因此,需要对数据进行拆分表存储,通过拆分将原来大数据表拆分成多张小的子表。拆分表的方式有以下两种。

3.2.1 数据表拆子表方式

原来数据存储在一张表中,数据非常庞大,需要将原来数据表分成多张小的子表(DataMea1, DataMea3,DataMea3,DataMeaN…),然后通过视图方式将这些表组合在一起。这种方式将原来在一张大表中的查询操作分担到每张小的子表中,能分担大表的检索压力,但它还是必须遍历每张子表,并将数据组装在一起,效果可能并不会提高太多,而且对数据库维护工作量较大(需要在视图中创建“增”、“删”、“改”触发器),因此,还需要用数据表分区的方式。

3.2.2 数据表分区方式

为了满足非常大的数据库的管理,需要创建和使用分区表和分区索引,分区表允许将数据分成分区甚至子分区的更小的、更好管理的块。每个分区可以单独管理,可以不依赖其他分区而单独发挥作用,因此可以提供更有利于可用性和性能的结构。SQL Server企业版自带数据库文件分组和数据表分区功能,通过SQL Server企业版的表分区功能,将原数据表通过分区函数进行分区并存储到不同的文件组中。由于数据索引文件较大,需要将索引文件和数据文件一同分区。系统共有测点11 723个,每个测点每天有2~3条测值数据,数据查询时可能会进行1天、1年或多年的查询,查询时长不固定。如果按数据时间进行分区并不合适,需要按测点编号及每个区500个测点进行分区。

分区函数及方案如下:

分区后的数据库结构见图3。

图3 数据库分区后结构Fig.3 The structure of the database after partition

4 优化测试

4.1 测试环境

(1)数据库安装在普通台式机上,计算机硬件及软件配置如下:

CPU:Intel(R)Xeon(R)1.86GHz

内存:2GB

操作系统:Windows Server 2003

数据库:SQL Server 2005 Enterprise Edition

(2)安全监测系统软件安装笔记本上,计算机硬件及软件配置如下:

CPU:Intel(R)Core(TM)2 Duo 1.80GHz

内存:2GB

操作系统:Windows XP

数据库:SQL Server 2005 Enterprise Edition

在数据库机器中安装“安全监测系统”所需数据库,数据库按前面设计的数据表分区方式创建,并将原来数据导入到新的分区库中。创建完成后的数据库文件分组结果见图4。

4.2 测试内容

参照前面的系统分析和优化目标,需要对原来数据库和新的分区数据库分别进行测试,本次测试功能模块主要有以下几项:

(1)单点过程线,查询单点过程线“C4-A15-PL-05”1天、1年和所有数据,计算查询时间。

(2)多点过程线,查询多点过程线“29号坝段1090以下温度”的1天、1年和所有数据,计算查询时间。

图4 数据表文件分组结果图Fig.4 Groups of the data files

(3)单点数据表格,查询单点表格“C4-A15-PL-05”的1天、1年和所有数据,计算查询时间。

(4)多点数据表格,查询多点表格“C4-A15-C-01到C4-A15-C-07”的1天、1年和所有数据,计算查询时间。

(5)月报表,查询“坝基多点位移计”2012年1月报表,计算查询时间。

(6)年报表,查询“水平位移统计表”2012年报表,计算查询时间。

4.3 测试方法

根据系统分析及测试内容,在各功能模块长耗时的位置增加时间输出调试代码,计算每个测试内容的耗时情况。首先对原始数据库进行测试,然后再对分区数据库进行测试。每个功能模块都进行4

表2 耗时测试结果表Table 2 Result of the time-consuming test

次以上的测试,且每次测试都清除数据库缓存,确保测试结果的真实性和可用性,测试完后取耗时第二长的时间作为样本。

4.4 测试结果

通过设计的优化方案及对照测试方法和测试内容,各功能模块测试后,计算每个功能模块的耗时情况,耗时测试结果见表2。从表2可以看出,通过分区后的数据查询速度较以前有巨大的提高,且能满足优化目标。

4.5 总结与建议

经过对应用程序及数据库的分区优化,系统运行速度较以前有较大提高,已能满足提出的性能目标要求。暂时测试的数据是5年4千万条左右,预计10年的数据在8千万条左右,通过数据分区存储到多个文件中,系统运行10年,每个分区数据在500~600万条左右,暂时可以在单磁盘上进行存储。随着以后数据不断增长,数据库的压力会逐渐增大,如果出现压力过大,可以增加磁盘,将分区数据文件组分别存储到不同的磁盘中,提高IO性能。 ■

[1]深入SQL Server 2008(第1版)[M].人民邮电出版社,2011.

[2]SQL Server 2008查询性能优化(第1版)[M].人民邮电出版社,2010.

This paper introduced the current state of the automatic safety monitoring system at Xiaowan hydropower station and analyzed the cause reasons for slow operation.Further,the system optimization plan was proposed,then implementation as well as testing were carried out.After the optimization,oper⁃ating speed of the system was greatly improved and the goals advanced were achieved.

performance optimization;data partitioning;safety monitoring

TV736

B

1671-1092(2014)03-0015-04

2014-02-27

占亮亮(1981-),男,工程师,主要研究方向:水利水电行业软件研究与开发。

Title:Performance optimization of the automatic safety monitoring system at Xiaowan hydropower sta⁃tion//by ZHAN Liang-liang and ZHOU Xi-lang//State Grid Electric Power Research Institute

猜你喜欢
性能优化安全监测
大型多媒体网络通信中的安全监测平台设计
光纤光栅传感器在施工中的应用
基于以太网的船用柴油机安全监测系统研制
SQL Server数据库性能优化的几点分析
Web应用的前端性能优化
浅谈工程安全评价中引入安全监测的现实意义
WEB网站缓存性能优化
GPR在重庆礼让隧道中的应用
Oracle数据库性能调整与优化分析