| 论文导读:对于一个信息系统,在经过长时间的使用后,数据库的性能就会发生恶化,使得用户等待的时间变长,那么影响数据库性能因素及如何对数据库进行优化呢,下面详细说明一下。所谓的性能调整说到底也就是减少系统的响应时间,但是根据应用类型的不同,性能优化的目标不同:在线事务处理(OLTP)应用程序把单位时间内用户交易量(吞吐量)定义为性能指标。据统计,对网络、硬件、操作系统、数据库参数进行优化所获得的性能提升,全部加起来只占数据库系统性能提升的40%左右,其余的60%系统性能提升来自对应用程序的优化。关键词:数据库系统,高效性,可用性,性能,优化
 
 对于一个信息系统,在经过长时间的使用后,数据库的性能就会发生恶化,使得用户等待的时间变长,那么影响数据库性能因素及如何对数据库进行优化呢,下面详细说明一下。 一、影响性能因素 影响Oracle数据库运行性能的因素有很多,对于大多数的企业应用来说,更多关注的是业务流程的正确性及完整性,而很少从系统的总体架构上考虑系统将来运行所面临的问题。当系统运行一段时间后就会不可避免的面临系统的性能问题。当面对一个运行缓慢的系统,应该从哪里下手呢? 一般而言,在数据库系统中,影响性能的因素有: 1.硬件的环境 cpu,内存,网络传输条件等均会影响到oracle的性能。 2.数据库运行时的配置参数设置 如:服务器有两块cpu,通过对两块cpu的负载均衡,程序运行速度恢复正常。免费论文网。 3.对于不合理的表结构设计 对于不合理的表结构对性能的影响,如当前有两张表,,当两张表有外键关联时,如果设计的不合理,则会影响到数据库的性能。 4.合理的sql语句 如果创建一个数据库更新事务之类,而没有进行commit及进的提交,将会造成系统锁死的状态,这样会严重影响系统的性能。 如何分析和重现这些信息的关联,是选择性能管理方案的重要考察因素。 二、理解性能优化 数据库性能包括存储空间需求量的大小和查询响应时间的长短两个方面。所谓的性能调整说到底也就是减少系统的响应时间,但是根据应用类型的不同,性能优化的目标不同:在线事务处理(OLTP)应用程序把单位时间内用户交易量(吞吐量)定义为性能指标;决策支持系统(DSS)把响应时间定义为性能指标。 响应时间=服务时间+等待时间 单位时间内用户交易量(吞吐量):以相同的资源来完成满足客户需求的工作 性能调整只是一个相对的概念,它是吞吐量和响应时间的一个折中的方案。对于运行缓慢的系统它的表现CPU使用率过高,内存不够用,IO过高等。 三、性能优化的步骤 数据库的优化可以通过对网络、硬件、操作系统、数据库参数和应用程序的优化来进行。最常见的优化手段就是对硬件的升级。据统计,对网络、硬件、操作系统、数据库参数进行优化所获得的性能提升,全部加起来只占数据库系统性能提升的40%左右,其余的60%系统性能提升来自对应用程序的优化。许多优化专家认为,对应用程序的优化可以得到80%的系统性能的提升。 1、 数据库设计的优化 数据库设计是应用程序设计的基础,其性能直接影响应用程序的性能。为了优化数据库性能,需要对数据库中的表进行规范化。规范化的范式可分为第一范式、第二范式、第三范式、BCNF范式、第四范式和第五范式。一般来说,逻辑数据库设计会满足规范化的前3级标准,但由于满足第三范式的表结构容易维护且基本满足实际应用的要求。因此,实际应用中一般都按照第三范式的标准进行规范化。但是,规范化也有缺点:由于将一个表拆分成为多个表,在查询时需要多表连接,降低了查询速度。 因此,数据库设计阶段需要考虑: ·数据库架构的设计(RAC等等) ·将表分区 ·表结构的设计 ·索引的设计等等 ·I/O分配时避免磁盘争用问题 ·恰当的PCTFREE和PCTUSED,避免数据库的行连接等问题 ·为用户创建足够大的盘区,以避免表的动态扩展,它的负面影响到高容量OLTP应用程序的性能。 2、 操作系统配置的优化 操作系统优化时应该考虑的因素有:内存的使用;CPU的使用;IO级别;网络流量。各个因素互相影响,正确的优化次序是内存、IO、CPU、网络。免费论文网。 ·调整内存分配 内存分配是在信息系统运行过程中优化配置的,数据库管理员可以根据数据库运行状况调整数据库系统全局区(SGA区)的数据缓冲区、日志缓冲区和共享池的大小;还可以调整程序全局区(PGA区)的大小。需要注意的是,SGA区不是越大越好,SGA区过大会占用操作系统使用的内存而引起虚拟内存的页面交换,这样反而会降低系统。 ·IO调整 这一步是在信息系统开发之前完成的。数据库管理员可以将组成同一个表空间的数据文件放在不同的硬盘上,做到硬盘之间I/O负载均衡。 ·操作系统内核参数的调整 例如:运行在UNIX操作系统上的ORACLE数据库,可以调整UNIX数据缓冲池的大小,每个进程所能使用的内存大小等参数。 操作系统的内核参数的设置对于系统性能的影响很大。 3、 应用程序性能的优化 应用程序的优化通常可分为两个方面:源代码和SQL语句。无论对新开发的程序,或是对现有应用程序进行优化,对数据的操作都会转化为SQL语句的形式在数据库执行,并且由于源代码的优化对性能的提升收效有限,因此应用程序的优化应着重在SQL语句的优化。优化目的就是降低内存,CPU,磁盘I/O等资源情况。 下面介绍一下所需要执行的步骤: ①查找最消耗资源的语句 利用诸如 STATPACK、SQL TRACE、SQL Analyze、Oracle trace 和TOAD等工具。免费论文网。可以查出存在问题的语句和存储过程。 在优化工作中,最有可能提高性能的语句包括: ·整体消耗资源最多的 语句 ·每行消耗资源最多的语句 ·执行频率高的语句 在V$SQLAREA视图中,用户可以查询到仍然驻留在缓存的语句,这些语句记录了数据库操作的资源消耗情况。 ②对以上语句的优化 下面方法可以减少特定语句所消耗的资源: ·使语句使用更少的资源 ·降低使用语句的频率 ③建立索引 为了确保数据库访问的效率,需要考虑使用簇、哈希簇、B*树索引、位图索引、以及Oracle优化器的,SQL语句执行计划的提示。此外,还应当考虑对表进行分析。从而让优化器确定最佳查询方案。 四、结束语 Oracle性能优化是一个复杂而又繁琐的工作,是一个系统工程,涉及的方面很多。所以,无论系统在设计,开发还是在后期维护的过程中,如果需要进行优化,那么就一定要设定系统优化的目标。由于影响系统性能的因素是相互关联的。一旦用户判读出性能瓶颈问题所在,那么就可能需要充分考虑到各个因素进行有效的调整以到达优化的目的。 参考文献:
 [1] 李学强;罗省贤;基于ORACLE系统的数据库性能优化设计[J];北京印刷学院学报;2006年06期
 [2] 刘博;Oracle数据库性能调整与优化[D];大连理工大学;2007年
 [3] 刘长生,孟松;Oracle数据库参数优化与分析[J];电脑知识与技术;2004年26期
 [4] 赵慧勤,李秀兰;ORACLE数据库应用系统的优化策略[J];计算机工程与应用;2003年27期
 
   |