基于企业环境的ORACLE数据库性能优化
2012-09-14杨正校
杨正校,杨 阳
(1.健雄职业技术学院 软件与服务外包学院,江苏 太仓 215411;2.南通大学 计算机科学技术学院,江苏 南通 226019)
基于企业环境的ORACLE数据库性能优化
杨正校1,杨 阳2
(1.健雄职业技术学院 软件与服务外包学院,江苏 太仓 215411;2.南通大学 计算机科学技术学院,江苏 南通 226019)
以企业环境ORACLE数据库性能优化为例,通过实际生产环境中的调优案例,分析阐述ORACLE数据库性能优化在企业资源规划(ERP)和生产中的重要地位和作用.
企业环境;ORACLE;数据库;性能优化
Abstract:Based on the enterprise environment ORACLE database performance optimization for example through the actual production environment in tuning,a case study is done on the ORACLE database performance optimization in ERP(enterprise resource planning)and the production of the important status and function.
Key words:enterprise environment;ORACLE;database;performance optimizati
越来越多的企业将ORALCE数据库作为首选,构建基于ORALCE数据库的企业信息化系统环境.访问数据库的频度在随生产管理规模、客户群体扩大、生产控制和管理的增加的同时,ORACLE数据库在运行过程中会产生大量数据,消耗系统资源,增加系统开销,输入/输出缓慢,影响系统平稳运行和正常生产,因而迫切需要对数据库进行优化.本文将以企业ORACLE数据库性能优化为例,通过实际生产环境中的调优案例,阐述性能优化在企业资源规划(ERP)和企业管理中的重要作用.
1 性能优化的主要内容与方法
影响数据库的性能主要有系统、数据库、网络等方面因素.系统方面的主要问题包括CPU时间、内存使用、磁盘I/O等.网络方面主要涉及网络带宽的占用等.而从ORACLE数据库的角度分析,影响ORACLE数据库的性能因素主要有如下几个方面:
1)数据库的配置参数.通过对影响系统全局区域SGA大小的几个参数监控分析,有效提高数据库系统对内存的利用率,同时还应兼顾系统平台资源(如:操作系统、后台用户进程)对内存的需求.另外,还有一些其他参数(回滚段、排序等)也需根据实际应用合理配置.
2)数据库物理文件的合理分布及逻辑对象(表空间、表、索引)的合理分布,将提高数据库的读写速度.数据库运行与应用中存在大量的I/O操作,如何减少数据库I/O访问量、提高I/O读写速度对提高数据库性能非常关键,可以通过对系统I/O的监控、对应用访问的分析,合理地将表、索引等放在不同的表空间,将数据库物理文件分布在不同的磁盘上等来提高数据库访问速度.
3)用户进程如何合理利用数据库的资源.包括应用程序如何用正确的方式编写SQL语句、如何有效使用索引、如何合理地将进程分布在服务器或客户端上,从而提高对数据库SGA内存区的命中率、减少I/O访问、减少对网络带宽占用等,在client/server模式下尤其重要.
1.1 响应时间与吞吐量的折衷
在实际的企业生产管理应用环境中,根据数据库系统应用类型的不同,性能优化的目标也随之不同.在高容量的在线事务处理系统(OLTP)环境中,数据是由一个primary索引得到的,重新排序表格的行就可以令连续块的顺序和它们的primary索引一样,这样就可以在索引驱动的表格查询中,减少物理I/O并且改善响应时间.通过OLTP,在数据发生变更时将它们记录下来,并及时更新到数据库中以提高事务处理效率并保证其正确性.在企业环境中主要有四种系统:市场营销、生产制造、财务会计、人力资源.在这些系统环境中将吞吐量定义为性能指标.
决策支持系统(DSS)是管理信息系统向更高一级(决策支持)发展而产生的先进系统,为管理者或决策者提供分析问题、建立模型、模拟决策过程、提供决策方案的系统环境,通过调用各种信息资源和分析工具帮助决策者提高决策水平和质量.在这样的系统环境中响应时间是重要的系统性能指标.
在企业环境中部署ORACLE将直接面对性能制约问题,数据库设计者以及数据库管理员应该事先了解本地企业实际环境的真实情况,在响应时间和吞吐量之间进行折衷选择,优化时间分配比例,提高企业有用时间的最大利用率,从而有针对性地提高ORACLE系统效能.
1.2 临界资源的考量
CPU、内存、I/O容量以及网络带宽等都是减少时间的关键因素.性能优劣主要取决于以下因素:①可用资源的数量;②需要该资源的客户数目;③客户等待资源所消耗的时间;④客户保持资源的时间长短.
当请求单元增加,服务时间也随之增加.为此可以选择通过限制请求的速率,从而维护可接受响应时间,还可通过增加资源数目,例如扩充内存容量和提高网络带宽来缓解矛盾.
ORACLE在生产制造的企业应用环境中,木桶效应尤为明显,系统其性能优劣取决于底层可用资源数量的高低,内存分配不合理、I/O优化不合理等瓶颈问题将制约ORACLE工作效能.ORACLE的监控,实时调整内存存储,减少I/O接口冲突,将ORACLE与其他设备进行无缝连接,成为系统优化工作的重点.
1.3 性能优化的方法
①调整单元的消费量:使事务在执行时占用更少的资源,或减少服务时间;②调整功能请求,通过重新规划或重新分配工作;③调整容量.增加或重新分配资源;④调整配置.修改配置文件,调整配置参数或者文件以达到性能预期.
2 性能优化的实施与流程
根据企业应用系统的类型,如OLTP或DSS来规划ORACLE系统的优化方法,是性能优化的关键.图1为数据库生命周期内不同阶段的优化代价图.
由图1可知,在数据库生命周期中,从设计阶段就开始进行优化设计,所付成本比较小,而到系统实施阶段,系统优化成本将更高,进行优化的最有效阶段是设计阶段,最有效的优化方法是proactive方法,企业能以最低的代价获得最大的效益.图2是基于ORACLE应用系统优化的流程图,分为10个步骤.按照投资回报减少的顺序给出优化过程步骤,对性能影响越大就越靠前.
图1 数据库生命周期内不同阶段的优化代价图
图2 基于ORACLE应用系统优化的流程图
3 企业ORACLE应用优化案例
案例描述:某个大型企业的生产管理系统,用户报告系统几乎崩溃,表现为用户请求得不到及时响应,管理员初步检查发现系统存在累计大量用户进程,同时新进程不断尝试建立连接,导致系统连接数很快用尽.最后ORACLE处于挂起状态,系统性能降低,无法进行正常的服务响应.操作系统:Solaris 8.数据库版本:ORACLE 9.2.0.3
3.1 登录数据库,检查警告日志文件
alert文件中还记录了如下警告信息,此信息说明系统内核参数设置不合理或者和当前SGA不匹配.
3.2 检查 System配置文件
这个信息说明最大共享内存段设置为4 GB.
3.3 检查 SGA设置
ORACLE数据库的内存分为SGA(shared globe area,共享全局区域)和PGA(program globe area,程序全局区域)两部分.PGA由数据库自身管理,管理员只需监控保证PGA没有溢出,SGA的大小对系统性能的影响极大.上述信息可见当前SGA接近7 GB,超过了4 GB,ORACLE将分配多个共享内存段.性能下降的原因是由于SGA设置过大,导致ORACLE运行时产生大量交换,大量Swap交换进而引发磁盘I/O问题.大量交换导致ORACLE数据库性能急剧下降,进而导致部门用户请求得不到快速回应、堵塞、累积,直至数据库失去响应.
3.4 修改SGA配置
在ORACLE 8i之前只支持静态SGA管理,ORACLE 9i后支持动态的SGA管理.允许不重新启动数据库而使得SGA的修改生效.
此后发现,在系统运行期间,数据库交换明显减少,ORACLE恢复正常运行,用户请求得到快速响应,达到了ORACLE性能优化目标.
4 结论
ORACLE是使用最广泛的企业级数据库之一,使用ORACLE的应用系统规模也比较大,需要处理的连接数和事务比较多,经常性地调整以优化应用系统的性能,防止系统出现瓶颈,是企业环境部署和运行维护过程中极其复杂的一项工作.本文以企业环境ORACLE数据库性能优化为例,通过实际生产环境中的调优案例,分析阐述ORACLE数据库性能优化在企业ERP(企业资源规划)和生产中的重要地位和作用.系统调优应以规划设计一个安全、稳定、优化的系统运行环境为基础,从ORACLE规划和建设进行系统优化策略和方案设计,是保障系统运行的基础.在企业实际生产环境中遇到类似上述问题时,应该快速判断、精确定位、及时解决,尽可能地减少因为ORACLE性能的低下对企业生产业务、管理等产生的影响.
[1]盖国强.深入浅出—DBA入门、进阶与诊断案例[M].北京:人民邮电出版社,2006:109-156.
[2]赵振平.ORACLE数据库精讲与疑难解析[M].北京:电子工业出版社,2008:568-634.
[3]THOMAS Kyte.Expert ORACLE Database Architechture and Performance Tuning[M].A Press,2005:265-360.
(责任编辑:李 华)
The ORACLE Database Performance Optimization Based on the Business Environment
YANG Zheng-xiao1,YANG Yang2
(1.School of Software and Service Outsourcing,Chien-Shiung Institute of Technology,Taicang 215411,China;2.Department of Computer Engineering,Nantong University,Nantong 226019,China)
TP311.13
A
1008-5475(2012)02-0051-04
2012-01-15;
2012-02-26
杨正校(1963—),男,江苏沭阳人,副教授,硕士,主要从事计算机技术与高职教育研究.