吴海波:办公自动化系统效率分析与优化方案设计 |
2013-06-09 09:44 作者:吴海波 来源:硅谷网 HV: 编辑: 【搜索试试】
|
|
硅谷网文 据《硅谷》杂志2012年第22期刊文称,办公自动化系统(OA系统)目前已经成为各大企业内部信息通信一个基础性工具之一,同时也在逐渐成为企业间信息交流的重要手段。因为行业差异的存在,导致现在的大型企业的OA系统一般采用专门定购和定向开发的方式形成的。这样软件公测面相对较小,公测期也短,导致软件的功能和效率测试不全。
1OA系统的速度问题
本文所测试的OA系统是专门为南车集团株洲电力机车厂实现办公自动化而开发的,所以该OA系统的针对性和适用性还是很强的。不过随着用户和数据量的增加,该OA系统客户端的处理速度在某些模块区表现得越来越慢了。例如:邮件管理模块中点击“下一步”按钮后系统运行的速度较慢。具体表现在同事之间发邮件时,延迟时间较长。我们通过前期分析,确认客户计算机和网络都没有问题,Web服务器、数据库服务器也没问题。只是在单击“下一步”按钮执行程序时CPU资源有时长时间被占用,而且是发生在读取数据的过程中(写入时,表现不明显)。于是判断长时间占用服务器CPU资源的主要是一些检索数据库的操作,因此采用对SQL语句进行测试的方法来测试与验证。通过此方法的确测试出SQL语句中的一些瑕疵,并提出一点优化建议。
2测试、验证与优化建议
通过使用在该OA系统的服务器端开启“SQL事件探查器”对其数据库进行监视的方式来测试与验证该系统的性能。其中发现一些SQL语句占用CPU时间特别大,现把主要的SQL语句摘录如下,其中()中的数据是SQL事件探查器监测出的重要资源占用数值:
2.1主要的SQL语句
(CPU:375Reads:5167Duration:983)
2.2依次对3条语句进行分析
2.2.1第1条语句
SELECTMAX(SubSTRING(FD_FT_RunTacheID,26,40))+1asmaxvalueFromTB_ENGINE_FileTache
(CPU:1422Reads:47785Duration:2483)
此语句使用的频率很高,而且对CPU的占用时间也很大。特别是多用户操作时,延迟时间很长。该语句中的“TB_ENGINE_FileTache”是邮件转发记录表,它是用于记录文件转发相关记录的一个表。
1)对此语句的分析结果
①该语句的任务是当前台点击“下一步”时,此语句执行检索表“TB_ENGINE_FileTache”得到最近一条转发文件记录的记录号,并在此记录号的基础上加1用来创建一条新的空白记录的记录号,以便在用户转发完文件后保存所转发的文件的相关转发信息。从这一点我们可以看出,任何用户只要对文件进行转发,系统都会要检索此表得到最近的一条记录的ID号,并创建一个新的记录号;同时系统设置为除非用户手工删除转发记录,否则不会自动清空此表中的任何记录。这样的结果是随着转发记录数的增加每次检索此表的时间必然加长,从而导致文件转发速度变慢。
②使用这种方式来创建新ID号还有一个致命的问题。即,当多线程对此表进行此操作时,可能会出现创建不了新ID号的结果。试想,当二个用户同时转发文件,在理想状态下,数据库服务器会在两个不同的进程中处理同一条语句,这样问题就出现了。他们都检索到了最近一条记录号,我们在这假设此最近的记录号为101,那么101+1=102这个记录号分配给谁呢?系统自然有冲突。同时从此OA系统的数据库结构上看,对数据库的访问都是以“锁”的形式处理的,而这种现象的出现其结果就是访问此数据库的两个进程间相互“死锁”,只有一方取消操作才可以消去冲突。
2)优化建议
①较方便的方法是设计一个ID号生成器,用来替代此SQL语句。文件转发时系统自动生成不重复的随机ID号。
②在数据库中设置一个触发器,定时为此表创建一些只有ID号的空记录,并以操作的次序把转发记录的相关信息以INSERT方式存入数据库中。对于可能产生冲突的情况,可以把“INSERT”语句所执行的进程设置为意图排它锁方式。
说明:此第1条语句还用在对“文件附件记录表”的数据检索和创建新记录号上,处理情况同上。
2.2.2第2条语句
1)分析结果:此语句对CPU影响最大的是“表-表”式的联接查询模式。即,多表数据的检索没有使用“视图”,而是直接“表-表”左开联接模式的方式进行数据的检索。我们都知道,检索多表与检索视图的效率差别是很大的。从“SQL查询分析器”中的“执行计划”分析结果来看,此语句执行成本的61.3%都是用在“表-表”联接上了,而用视图则这61.3%成本是不用消耗的。
2)优化建议:设计包含多表中选用字段的视图,提高检索效率。
2.2.3第3条语句
1)分析结果:“in”的使用占用了大量的CPU时间。时间比大概为10:1
2)优化建议:可以借助于索引进行操作,来减少不必要的子查询,以提高检索的效率。
3综述
1)包含第1条SQL语句这一类的语句是造成该OA系统中文件管理模块效率较低的最主要的原因。个人认为该OA系统的优化的基本点就是优化此类语句。
2)包含第2条SQL语句这一类的语句中“表-表”互联检索是我们对此OA系统效率进行优化一个高效的切入点。
3)对包含第3条语句的这一类的语句的优化是让该OA系统更高效的一个很好的优化补充。 |
|
|
|
【对“吴海波:办公自动化系统效率分析与优化方案设计”发布评论】 |
版权及免责声明:
① 本网站部分投稿来源于“网友”,涉及投资、理财、消费等内容,请亲们反复甄别,切勿轻信。本网站部分由赞助商提供的内容属于【广告】性质,仅供阅读,不构成具体实施建议,请谨慎对待。据此操作,风险自担。
② 内容来源注明“硅谷网”及其相关称谓的文字、图片和音视频,版权均属本网站所有,任何媒体、网站或个人需经本网站许可方可复制或转载,并在使用时必须注明来源【硅谷网】或对应来源,违者本网站将依法追究责任。
③ 注明来源为各大报纸、杂志、网站及其他媒体的文章,文章原作者享有著作权,本网站转载其他媒体稿件是为传播更多的信息,并不代表赞同其观点和对其真实性负责,本网站不承担此类稿件侵权行为的连带责任。
④ 本网站不对非自身发布内容的真实性、合法性、准确性作担保。若硅谷网因为自身和转载内容,涉及到侵权、违法等问题,请有关单位或个人速与本网站取得联系(联系电话:01057255600),我们将第一时间核实处理。
|
|
|
|