探究Oracle数据库应用系统的性能优化
2018-04-15蔡建华张凌立
蔡建华,张凌立
(华东师范大学计算机科学与软件工程学院,上海,200062)
关键字:Oracle数据库;应用系统;性能优化;评价指标
0 引言
随着信息技术的不断发展,Oracle数据库应用系统在人们的实际生产生活中得到了广泛应用。Oracle数据库应用系统具有较强的事务处理能力,不但事务处理质量高,而且效率也有极大提升。根据相关统计显示,Oracle数据库应用系统在实际的应用过程中,仍存在影响系统性能的诸多因素,由此对Oracle数据库应用系统的性能欠缺进行分析,并针对其出现的问题采取相关的应用对策,加强对Oracle数据库应用系统的性能优化,对提高系统的运行效率具有重要意义。
1 Oracle数据库基本内涵
20世纪70年代Oracle数据库作为一种完善的数据处理系统诞生,能够有效地梳理数据之间的关联性,不但具备完善的关系结构,而且还具备分布式的部署功能,适合海量关系数据的存储。在Oracle数据库实际的应用过程当中,凭借其强大的优势,可以便捷地管理不同业务的数据关系,但是影响其性能发挥的问题在实际应用中不可避免,因此技术人员要从应用实施出发对数据库系统分析研究,依据评价指标使系统性能最优化,充分发挥Oracle数据库应用系统的优势。
2 关于Oracle数据库应用系统的性能评价指标
2.1 系统的吞吐量
通常情况下,提高Oracle数据库应用系统的吞吐量主要包括两方面内容。其一,尽最大程度化减少服务时间,促使服务质量与服务效率的提升。充分保障在有限的时间内及同等资源条件下,完成更多的任务量。其二,降低总体响应时间。通过对响应时间进行整体调整,从而提高Oracle数据库应用系统的实际运行效率,发挥系统的作用,提高事务处理效率。
2.2 用户响应时间
所谓的用户响应时间,总体上来讲就是系统对事务处理的总用时,并且当前这种用时单位主要以秒或者毫秒为主。而系统响应时间与用户等待时间是用户响应时间的主要组成部分。基于此,要想实现客户接受响应时间,有效的提高服务质量与服务效率,则需要做好以下方面:其一,减少用户等待时间,尽可能降低用户的冲突率,避免用户在同一时间内,对同一系统的使用。其二,减少服务时间,不断增强Oracle数据库应用系统的吞吐量。
2.3 数据库命中率
Oracle数据库在实际的应用过程当中,用户处理事务时,其所需要的数据信息,完全是由缓存区高速缓存实现的。并且高速缓存命中率=命中总数÷查找总数。缓存区数据读取与磁盘数据读取相比较而言,前者更能够降低数据读取的开销,并且缓存区数据命中率相对较高。
2.4 内存使用情况
要想实现对内存使用情况的调整,主要加强对运营时内存、可共享内存、及永久性内存进行分配。在判断内存是否存在合理化的使用时,需要结合两个重要的标准对其内存使用情况作出判断。首先,最大程度化降低能源的争用率,由于等待与延迟会导致运行出现瓶颈。因此,要想避免出现瓶颈,则需要尽最大可能降低资源的争用率。其次,实现投资数值的最大值。
2.5 磁盘的I/O活动
在Oracle数据库实际的使用当中,事务处理过程当中会随之产生相应的I/O活动。并且这种活动同时可以囊括物理与逻辑两种类型。其中,在衡量Oracle数据库实际的运行性能时,磁盘的I/O活动发挥其不可替代的作用。与此同时,磁盘的I/O活动也是计算机开销最大的地方。如果能够在Oracle数据库应用系统实际的运行当中,有效的降低I/O活动,则可以在一定程度上增加Oracle数据库应用系统的吞吐量,极大的降低了用户的响应时间,进而实现Oracle数据库应用系统的实际运行效率。
3 影响Oracle数据库应用系统性能的因素
3.1 数据库服务器
Oracle数据库应用系统当中,数据库服务器是整个系统的核心部分,其性能的高低,对Oracle数据库应用系统的运行具有重要的影响。并且,其操作系统与服务设备的硬件两部分内容,严重制约着数据库服务器的性能。
3.2 数据库
在数据库的实际运行当中,数据库配置的情况,在很大程度上影响着数据库的性能。与此同时,数据库配置是强化数据库性能的重要保障。而数据库配置主要由以下几点内容组成,例如参数配置、I/O配置、碎片整集、CPU调整、内存区域配置、回滚段配置。数据库配置将会贯穿于整个数据库的整个运行当中。
3.3 应用程序
在数据库性能的提高过程当中,应用程序发挥着重要的作用。此外,选择良好的数据库衔接方案,设置数据库程序等,对于提升SQL语言的运用能发挥其重要的作用。并且对于提升数据库程序的运行效率,发挥其举足轻重的作用。
4 Oracle数据库应用系统的性能优化方向
4.1 内存调整
内存优化主要是通过优化内存结构来提高系统性能,一直都是数据库优化的工作重点。Oracle的内存分为系统全局区(SGA)和进程全局区(PGA),对内存进行有效配置调控的关键是在查询时尽可能防止逻辑I/O变为物理I/O,也就是尽可能从缓存区访问所需数据。数据文件的访问可以通过调优合适的SGA高速缓冲区来被最小化,而临时表空间的访问可以通过优化PGA来被最小化。针对生产环境的实际情况,是否有系统突发工作量,是否存在要大量排序的定期批处理作业等情况来调整SGA和PGA的设置,制定相关优化策略以最小化处理时间。
4.1.1 优化共享环节
系统通过SGA对数据库数据进行快速访问,它是一组可被多个进程使用的共享内存缓冲区。首先要保证SGA被锁定在物理内存中,避免页入或页出。其次要调优各共享区域的空间大小,其中优化库高速缓冲区和共享池是提升数据库访问性能的关键。通过利用Oracle缓冲咨询视图,可准确地确定缓冲区高速缓存大小,减少执行物理读写请求的次数,提高缓冲区的数据命中率。共享池保存SQL语句的语法分析,当用户执行SQL时,无需进行再次分析,直接从共享池取用已分析好的语句执行,提高其实际的落实效率。对这些共享缓冲区的合理设置,可以大大加快数据查询速度,有效缓解资源被恶意消耗的情况。基于此,不断优化共享环节,能够有效的提高数据的命中率。
4.1.2 优化日志缓冲区
重做日志缓冲区是临时存储数据的内存区,用户所有修改前后的数据都被保存在缓冲区中,在空闲等待过程中,log buffer数据会被LGWR进程写入磁盘的重做日志文件之中,为缓冲区释放更多可用空间,这在很大程度上提升了执行效率。如果日志缓冲区空间过小,会导致Oracle数据库无法为日志重做提供存储空间。或者数据写入缓冲区的速度超过LGWR进程的写出速度,会造成资源争用或日志瓶颈。在DML操作频繁或经常发生日志写入等待事件的生产数据库中,要详细分析引发重做日志缓冲区产生等待事件的原因,调整合适的重做日志缓冲区尺寸,使数据库的运转性能最大化。
4.2 CPU性能调整
CPU的实际运行情况,对Oracle数据库性能产生重要的影响。因此,不断的优化CPU性能,不但有助于提升各项资源的应用效率,而且还能够提高数据库运行质量。首先,在数据库的查询及处理过程当中,需要采用两个以上CPU。由于CPU技术不断的进步,及其CPU并行技术应用的日渐成熟,Oracle可以很好地支持部署分布式数据库,平衡海量数据的查询及处理。此外,在进行数据查询的时,可以利用PQO(Parallel Query Option)方法实现。使用PQO方式不仅可以在多个CPU配置间分配SQL语句的处理请求,而且,当所查询的数据处于不同的磁盘时,PQO能够使用多个独立进程同时读取不在同一个磁盘当中的数据。
5 结语
优化Oracle数据库应用系统性能,不但难度系数相对较大,并且是一项较为复杂的工程。因此,技术人员要结合Oracle数据库应用系统的实际运行状况,对其存在的问题进行全面分析。结合实际环境,优化除了针对文中讨论的实施阶段,有时需要回溯到数据库应用系统的设计阶段或开发阶段,对程序结构或SQL语句进行调整,才能达到优化系统性能的目的。总之,优化要考虑应用程序在数据库中涉及到的各个环节,才能全面提升Oracle数据库应用系统的性能。