摘 要:摘要:本文介绍了装置操作卡管理系统的运行速度快慢与数据库优化的密切关系,分析了系统运行速度慢的原因,阐述了提升系统运行速度的解决办法,介绍了oracle数据库的参数配置,阐明了优化数据库是提升系统运行速度的关键所在。
关键词:关键词:操作卡;运行速度;数据库优化
中图分类号:TP3 文献标识码:A 文章编号:
1.前言
装置操作卡管理系统经过一年多的正式运行,近期,车间的用户普遍反映运行速度比较慢。用普通用户进行测试,结果如下:从登录界面输入正确的用户名和密码后,到显示出系统的主界面的时间间隔大约25~35秒;而操作卡查询后,点击某个查询出来的操作卡,到显示该操作卡的详细内容的时间间隔大约30~40秒。分析操作卡系统的数据量和用户的使用频率,这样的运行速度确实很慢,可以说给用户的操作带来了不便,影响了工作效率。
2. 速度慢的原因分析
问题很普遍,显然不是某台客户机的问题,而且在配置较好的客户机上测试,访问速度也很慢,配置较低的客户机,其访问速度就可想而知了。经过分析,很可能与以下几个方面的原因有关:服务器的配置低;当前表中的数据量过大;数据库的参数配置不合理;这些都是系统运行速度的瓶颈。当然,网络状况和病毒也是影响系统运行速度的原因,需要一一排查。
3. 网络状况和病毒的排查
目前分公司的信息系统很多,通过对照分析,同操作卡系统情况类似的MES系统的运行速度在正常范围内,这两个系统同在一个网段,可以排除网络原因;系统服务器上的防病毒软件“赛门铁克”,没有病毒隔离报警,而且用各种病毒专杀工具进行杀毒,没有查出病毒,可以排出病毒原因。
4. 系统服务器的配置
操作卡系统的服务器配置如下:
服务器型号:DELL POWEREDGE 2850
CPU:3G双CPU
内存:3G
硬盘:5块146G的SCSI硬盘,共700G,做RAID5后,剩余550G。
对于以上配置的服务器,运行功能相对简单、数据交换量不大的操作卡系统,还是绰绰有余的。
5.当前表中的数据量过大影响系统运行速度
5.1 当前表的数据统计
操作卡系统用来存储数据的后台数据库是ORACLE数据库,系统主界面打开时需要调用多个表中的记录,其中有两个表中的数据量较大,一个是OPER_DAILYOPERHEAD,一个是OPER_DAILYOPERDETAIL。截止到6月底,表OPER_DAILYOPERHEAD中的记录个数为86406条,而表OPER_DAILYOPERDETAIL中的数据相对要多些,达到2336979条记录,导出的数据库文件大约有25G左右。对于oracle数据库来说,表中的记录数量还没有达到影响系统运行速度的限额,但是考虑到数据量还在不断的增加,削除因当前表记录过多影响读取速度的因素,决定把当前表中的大部分数据转移到历史备份表中,以提高系统的运行速度。
5.2 历史数据转移
起初,系统设计时没有考虑到历史数据转移功能,随着当前表中的数据量逐渐增加,如果不转移数据,在进行数据查询的时候,会越来越慢,最终肯定会影响系统的运行速度。
可以根据实际情况选择数据转移的起始时间和截止时间,为了避免转移的数据量过大而影响系统当前的运行速度,以时间间隔半个月为宜。通过与生产处技术人员交流,当前表中可以只保留2个月的最新数据,其余的都作为历史数据转移到历史数据表中。对于用户来说,数据转移后所有操作不受任何影响。
通过测试,历史数据转移后,系统的运行速度同预期效果一样,虽然有所提升,但不明显,只是提高了几秒钟。同时也说明了,目前表中的数据量还不是影响系统运行速度的关键因素。
6. oracle数据库优化
数据库的优化是改进Oracle 数据库性能的有效的方法之一。
为了访问数据库中的数据,Oracle数据库为所有用户提供一组后台进程,并且,有一些存储结构专门用来存储最近的有关对数据库访问的数据。这些存储区域可以通过减少对数据库文件的I/O次数来改善数据库性能。数据库系统的执行效率较低时,就要对Oracle数据库的参数进行调整,以便提高Oracle 数据库性能。
Oracle 9i在安装时为每个数据库建立了一个Pfile,Pfile(Parameter File,参数文件)文件是基于文本格式的参数文件,含有数据库的配置参数,默认的名称为“init+例程名.ora”,这是一个文本文件,可以用任何文本编辑工具打开。
检查参数配置文件的内容发现,以下参数设置不太合理,并适当的进行了调整:
*.db_cache_size=25165824:数据缓冲区大小;改为1288490189。该值越大,可以减少对数据库文件的I/O次数,提高运行效率。
*.pga_aggregate_target=25165824 :PGA目标值;改为262144000。使用PGA_AGGREGATE_TARGET设置整个PGA大小,Oracle将为每个Session按照实际需要为其分配PGA,并尽量维持PGA总量不超过PGA_AGGREGATE_TARGET值。
*.shared_pool_size=50331648:共享池大小;改为209715200。用于存储共享游标、存储的过程、控制结构和并行执行消息缓冲区等对象,较大的值能改善多用户系统的性能。
*.sort_area_size=524288:排序区使用的最大内存量。改为1048576。排序完成后, 各行将返回, 并且内存将释放。增大该值可以提高大型排序的效率。
7. 创建ORACLE索引表
Oracle数据库中,标准表和索引表的本职区别在于:索引表中的ROWID列存放的是主键信息,是逻辑的物理地址;而在标准表的ROWID伪列中则存储的是真实的物理地址。
Oracle数据库索引表的优势主要体现在数据查询上,而且,这个优势是非常明显的。一是索引表能够获得比标准表更快的查询速度;二是索引表中的记录,是按照主键列进行排序存储的;三是利用溢出存储功能,提高常用列的访问速度。索引表减少了数据查询过程中的中间环节,避免了额外的数据块读取操作,可以获得更快的查询速度。
如果数据表的变更比较频繁的话,则不适合采用索引表。这主要是因为Oracle数据库在对索引表管理时,开销比较大。另一种方法是在基本表上建立索引,这样虽然查询效果没有索引表那么好,但是,却可以大大减少Oracle数据库的开销。
建立索引要注意:一是在索引表中,不能对非主键建立索引。这是索引表建立的一个限制条件,数据库管理人员必须无条件的遵守。二是必须给索引表建立主键。有些数据库管理员有个习惯,在建立表的时候,一开始不设置主键。等到表维护的时候,再确定某个字段作为主键。但是,在索引表建立的时候,一开始就要指定表的主键,否则的话,会有错误产生
。这也是数据库管理人员需要注意的。
8. 测试
系统源程序及Oracle数据库参数优化后,经过多用户多次测试,反馈的结果是:
从登录界面输入正确的用户名和密码后,到显示出系统的主界面的时间间隔大约5秒左右;而操作卡查询后,点击某个查询出来的操作卡,到显示该操作卡的详细内容的时间间隔大约10秒以内。
由此说明,oracle数据库的性能优化对提高操作卡系统的运行速度起到了关键作用。
9. 结语
为了保证Oracle数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略。优化策略一般包括服务器操作系统参数调整、数据库参数调整、网络性能调整、应用程序SQL语句分析及设计等几个方面。但是数据库的性能优化调整是一个系统工程,涉及的方面很多。在实际工作中,还要根据用户反映的具体情况,认真分析Oracle在运行过程当中出现的各种问题,以保证Oracle数据库运行的高效率,保证用户的正常使用。
参考文献:
[1] 北京华创操作卡系统安装与配置手册
[2] Oracle 数据库系统管理.滕永昌.机械工业出版社