OA系统性能优化及提高数据检索效率方法研究

2017-07-31 16:25刘丽娟黄锦
大连交通大学学报 2017年4期
关键词:检索服务器职工

刘丽娟,黄锦

(1.大连交通大学 软件学院,辽宁 大连 116052; 2.大连华信计算机技术股份有限公司,辽宁 大连 116085)

OA系统性能优化及提高数据检索效率方法研究

刘丽娟1,黄锦2

(1.大连交通大学 软件学院,辽宁 大连 116052; 2.大连华信计算机技术股份有限公司,辽宁 大连 116085)

针对项目管理系统中数据交错导致数据检索时间长,系统性能差的问题,提出两个系统优化的方案:添加索引和添加中间表.最终通过建立中间表,提前将有用数据存储,使用时直接从中间表中检索数据,有效的降低检索时间,提高系统运行效率.运用中间表的方式,对系统性能的提高在60%以上.

中间表;性能优化;项目管理系统

0 引言

随着云计算、大数据等技术日益成熟,自动化管理开始大规模普及.本文在对大连某大型软件外包企业进行实地考察后设计了一款基于自动化理念的项目管理系统.应用该系统可以实现高效、准确、便利的项目管理,但是在系统测试阶段,该系统的部分功能检索效率非常低.出现问题的主要原因是期望数据需要从多表中根据不同条件检索获得,导致在测试数据仅仅十条的情况下就达到14.79 s之久,结合企业实际数据更加庞大的实际情况,特对系统进行优化处理.本文对优化前后的系统性能进行了大量测试,通过对测试数据及图标的分析,优化后系统性能最终满足开发要求.

1 系统检索效率低原因分析

1.1 系统介绍

本系统设计为软件公司用自动化管理系统,核心是项目管理模块,管理模块中任务分配功能和工资结算功能的性能明显太差.任务分配功能是该系统中项目经理级别的职工操作的功能,目的是检索出自己项目组所有成员管理各成员的计划,该检索生成的数据源分为如下几个方面:根据项目经理的职工ID从项目信息表中检索出对应项目信息;根据项目组成员的职工ID从职工信息表检索出职工信息;根据项目组成员的职工ID从计划信息表检索出对应计划信息;系统最终检索后的数据显示如图1所示.

图1 任务分配功能

1.2 检索效率原因分析

优化前的数据库设计并没有切实考虑到任务分配功能的实际操作,在项目信息表中添加PRO_STA_ID1~PRO_STA_IDN字段用来存储项目组成员的职工ID,这样的设计固然可以在添加组员的操作上方便对数据库的操作,但是任务分配功能需要最终检索出包括组员的计划信息在内的详细信息,以优化前的数据库设计而言,系统需要在检索出组员职工ID之后再次根据职工ID检索计划信息,企业实际情况而言,小型团队可能体现不明显,但是当遇到几百人以上的大型项目,这种设计的缺点就会被无限放大.

2 系统优化的设计

在软件开发中,客户对系统的性能有很高的要求,大数据时代的到来,很多处理会涉及到庞大的数据量,在实际软件项目的开发过程中,会有针对庞大数据量的性能测试.一般大型系统,例如铁路系统,银行系统,都会有对应的批处理.在针对企业、学校等OA类型的系统中,虽然限制于系统使用用户数量,数据量一般不会达到十几万以上的级别,但是,这类OA系统中的检索条件可能相对复杂,即使几百条数据,如果系统的处理不好,也会使系统性能达不到客户要求,针对本OA系统出现的问题查找了相应文献.文献[1]中系统分析了Oracle数据库索引的特点,对使用SQL语句基于索引对数据库的效率进行优化的实现方法提出了几点认识,并以自己的实际工作经验为例进行了一些新的探索和尝试;文献[2]中使用存储过程可以优化对数据库的访问,该文通过实例,较详细地阐述了创建存储过程及在ASP中调用存储过程的方法.经过研究讨论之后,提出两条可行性方案,方案一:利用索引提高检索性能[3];方案二:添加中间表,降低数据检索复杂度.但是该系统的数据库在设计的时候对每个表都设置了自增的主键,而性能不好的功能在从数据库检索数据时检索条件基本都为主键检索,讨论之后发现就算再给其他列添加索引对系统性能的提高也并不明显,最终本文选定方案二对系统进行优化.

2.1 数据流向的分析

任务分配功能最终检索出的数据是从三个表中检索获得,分别是T_PROJECT(项目信息表)、T_STAFF(职工信息表)和T_POLT(计划信息表).期望数据都是前置功能对这些表中添加或者修改的数据,具体数据生成如下:后台管理模块,管理员添加职工信息;团队管理功能部门经理立项,添加新的项目信息;任务分配功能,项目经理添加组员信息;计划承诺时,职工添加计划信息 .分析之后发现,任务分配功能最终检索的数据包括职工信息表的职工ID、职工姓名,项目信息表的项目ID,计划信息表的计划ID、计划名称、计划区分.

2.2 性能优化的设计与实现

为了提高任务分配功能的检索效率,决定在前置操作的时候提前将此功能需要检索的数据储存在中间表T_MID_FOR_PROJECT(项目管理用中间表)中,此表需要储存所有任务分配功能用的数据,考虑到该表在大型部门中数据量可能会很庞大的实际情况,设置自增主键T_MID_ID以提高检索效率,表T_MID_FOR_PROJECT的结构如表1所示.

表1 数据表“T_MID_FOR_PROJECT”的结构

中间表设计完成后,需要对系统后台进行一定的修改,修改包括如下几点:

(1))添加成员成功时向T_MID_FOR_PROJECT表添加一条新数据,包括职工ID、职工姓名、项目ID以及数据库自增添加的中间表ID;

(2)职工承诺计划后更新T_MID_FOR_PROJECT表对应数据,添加计划ID和计划名称字段;

(3)任务分配功能,后台首先根据项目经理的职工ID检索出对应的项目ID,然后根据项目ID从T_MID_FOR_PROJECT表中检索出所有数据.

3 系统优化前后性能对比

在系统优化后利用mb0秒表工具对系统进行了详细的性能测试,本章将详细介绍利用中间表优化系统前后主要优化功能以及系统整体的前后性能对比,考虑到服务器CPU使用率问题,测试数据存在细微偏差.测试用服务器为低配置个人笔记本电脑,服务器参数如下:处理器:AMD A6-3420 MHz; 内存:4GB; 操作系统:Windows 7专业版.

3.1 任务分配功能性能对比

任务分配是本文主要优化的功能,性能优化后该功能的检索效率提高显著,前后检索时间对比如图2所示.

图2 任务分配功能检索时间对比

从图中可以看出,忽略服务器状态不稳定的影响,在检索数据为0的情况下,前后检索时间基本没有变化,但是仅仅上升到十条数据,检索时间就从14.79 s降低到2.86 s,就主要优化功能而言,性能优化达到逾期值.

从图表发现另一个问题,优化后的系统0条数据的检索时间竟然比10条数据多,为了排除是测试者或者服务器问题造成的特殊情况,对优化后的系统进行了大量测试,分别测试0、5、10、20、40、80、160和200条数据情况下任务分配功能的检索时间,并且每种情况测试10次,忽略特殊值,得出平均值的数据折线图如图3所示.

图3 平均时间折线图

所有测试数据的折线图如图4所示.

图4 优化后数据对比折线图

通过图4发现第一次跟第二次的测试数据与其他数据时间偏差较大,经过研究发现是因为测试用服务器的CUP使用率太高,忽略服务器问题,结合平均时间与十次测试数据的折线图发现,优化后的系统检索时间基本稳定在3 s左右,这与优化前系统随着数据增加检索时间增加相比性能优化的目的已经达到.

优化前对性能不好的分析猜想是因为测试用服务器配置较低,当时特选用另一台配置较高的服务器(酷睿i7-5500U处理器、16GB内存)进行了少量测试.测试结果显示,优化前十条数据的检索时间平均在4 s左右,优化后用该服务器重新测试了系统性能,本次测试旨在观察服务器对系统性能的影响是否明显,所以仅进行了一次测试,同样的测试了0、5、10、20、40、80、160和200条数据情况下的检索时间,实验结果的折线图如图5所示.

图5 较高配置服务器系统优化后检索时间折线图

优化前后两次选用不同配置服务器的测试结果都显示,服务器对性能的影响很大,尤其是优化前,同样数据的检索时间相差明显.OA类系统是针对企业或者学校这样的大型单位开发,在服务器的选择上肯定会更加优于测试用服务器,本次优化后的系统检索时间已经大大降低,虽然测试数据最多仅有200条,但是此次优化的功能检索数据是在单个项目组内的检索,考虑实际情况,200人以上的大型项目组出现的可能性很低,本次性能优化目的达到.

3.2 优化后对其他功能的性能影响

本系统优化的方法是通过添加中间表来提高检索效率,但是中间表的数据需要在其他功能操作的时候向中间表中添加,如果因为优化了任务分配功能导致其他功能性能大幅降低,不符合软件工程的思想,本节对代码有过改动的添加成员功能、计划承诺功能以及表结构变化受到影响的项目查询功能进行了前后性能对比,对比结果如图6所示.

图6 其他功能优化前后对比柱形图

测试后发现,优化后不仅没有使这三个功能性能降低,添加成员功能性能还有所提高,本次系统优化的设计与实现没有违背软件工程的指导思想.

4 结论

系统性能问题是OA系统中普遍存在的问题,作为辅助学校或者企业办公的辅助软件,其目的是为了提高工作效率,如果因为性能问题导致客户使用系统时间额外增加,违背开发初衷.特此进行了部分功能的性能优化,优化的最初目的是想让任务分配功能的检索时间降低,但是最终优化完成后测试发现不仅是检索时间单纯降低而已,优化后的系统,随着测试数据增加,检索时间基本稳定在3s左右,这与之前系统随着测试数据增加检索时间增加的趋势相比系统性能的提高非常显著.虽然200条数据远远不符合大数据的概念,但是考虑到企业的实际情况,达到200人以上的项目出现情况已经很小,本次系统优化的成果已经远远超出预期值.

[1]高海宾, 陶保壮. 基于Oracle数据库索引的查询优化研究[J]. 新余学院学报, 2016, 21(4):99-101.

[2]张梅梅, 宋正明, 李豪,等. SQL Server 2008中的存储过程的研究及应用[J]. 中国市场, 2016,23:79-80.

[3]刘小华. 基于索引的Oracle查询效率优化研究[J].工程技术(文摘版), 2015,53:162-162.

[4]马朝红, 詹晋玮. 数据库性能优化技术应用研究[J]. 计算机与网络, 2016, 42(8):62-64.

[5]刘丽娟. SQL语言在DB2数据库中存在问题的探讨与研究[J]. 商场现代化, 2011,23:151-151.

OA System Performance Optimization and Research on Improving Efficiency of Data Retrieval Methods

LIU Lijuan1, HUANG Jin2

(1. Software Institute, Dalian Jiaotong University, Dalian 116052,China; 2. Dalian Huaxin Computer Technology Co., Ltd, Dalian 116085, China)

Aiming at the problem of long data retrieval time and poor performance of the data in the project management system, two system optimization schemes are put forward. Through the establishment of intermediate table and in advance of the useful data storage, the intermediate table is used directly to retrieve data. The search time is effectively reduced, and the efficiency of the system is improved. The performance of the system is improved by more than 60% in the middle of the table.

intermediate table; performance optimization; project management system

1673- 9590(2017)04- 0177- 04

2016- 07- 07

辽宁省自然科学基金资助项目(201602124)

刘丽娟( 1978-),女,讲师,硕士,从事计算机应用控制的研究E- mail:mishu06@163.com.

A

猜你喜欢
检索服务器职工
以职工之家为抓手 让职工享“家”温暖
职工书画
通信控制服务器(CCS)维护终端的设计与实现
《最美职工 职工最美》 曲谱
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
专利检索中“语义”的表现
青年职工的贴心人
国际标准检索