APP下载

浅谈Oracle11g数据库性能调整和优化

2014-08-15李继龙李芳

科技视界 2014年17期

李继龙 李芳

【摘 要】据有关统计数据显示:在最受欢迎和最为广泛使用的数据库排行榜中,关系型的Oracle数据库位于榜首,数据库性能的好坏会很大程度上影响到应用系统的性能和效率。主要在本篇文章里探讨了Oracle 11g数据库调整优化性能的常用的一些准则、影响性能的一些相关因素、未达到优化目的应该怎样设置有关参数等等。主要包括系统全局区的参数设置、进程全局区的参数设置、磁盘I/O优化的一些设置以及磁盘碎片优化的问题等等,最后简单介绍了一下Oracle 11g自带调优的相关工具。

【关键词】性能调整和优化;配置优化;磁盘I/O优化;磁盘碎片调整

0 引言

随着信息化的不断深入和推进,关系型数据库Oracle被大家广泛的使用,在整个数据库产品市场中,Oracle数据库产品占有率达到了一半,并有进一步提升的趋势。由于存储量的持续膨胀、并发用户数的持续增加,经常显现出系统吞吐量逐渐下降,响应时间逐步增长等等的问题。怎样才可以有效调优数据库性能,有效的绕过系统瓶颈,变成了数据库相关人员必须面临的问题。调优Oracle数据库性能是一个持续复杂的过程,在数据库系统的每一个时期都会涉及到它。

优化和调整数据库性能的基本原则是千方百计减少不通过磁盘访问就可以获得所需数据,从而增强系统的吞吐量,降低响应时间,使数据库可用性得到不断提高。

1 影响数据库性能的因素

方方面面的因素和原因,都影响与制约着数据库的性能。下面列出了主要的几个方面。

(1)数据库服务器的性能。

(2)数据库的配置。

数据库的性能取决于其相应配置,所以数据库的合理配置就毫无疑问的变成了调优的核心。而这又主要涉及到:调整 I/O设置、调整CPU、调整内存设置、整理碎片、调整回滚段设置以及调整其他参数的设置等等。数据库调优渗透到了数据库设计、创建与运行每个阶段。

(3)网络I/O情况。

(4)应用程序性能情况。

数据库性能很大程度上取决于应用程序的性能,尤其是SQL语句具体使用情况、数据库的具体连接方式、客户端具体的程序设计、具体如何使用的数据库对象等等,这些的方面的具体情况如何都对系统的执行效率有显著影响。

本文中主要阐述和讨论了怎样数据库调优中综合起来使用一些规则和方法技术,并简单介绍下Oracle 11g自带的优化工具。

2 优化数据库的配置

2.1 内存的调整和优化

Oracle11g 数据库实例的内存结构主要由系统全局区SGA (System Global Area)和进程全局区PGA (Process Global Area)构成,而系统全局区又由五部分组成:数据缓冲区、SQL共享池、日志缓冲区、大池以及Java池,它们的分配情况严重制约着数据库的性能[1-2]。

(1)数据缓冲区的调整和优化。

数据库缓冲区又可以称作用户数据高速缓冲区,与该实例相链接的用户进程均可以访问这一缓冲区。用户数据高速缓冲区主要存放已读取的数据文件的数据块的副本,或是曾经处理过的数据。若所请求的数据位于缓冲区内,便直接返回给请求的用户,所消耗时间是比较短的;否则,所需时间就变长了。因此要想提高数据库的性能就应该想方设法提高缓冲区的命中率。

2.2 磁盘I/O调整

因为磁盘I/O速度会严重制约数据库的性能,所以要想提升系统性能就应该解决好磁盘I/O。影响磁盘I/O的主要因素有:磁盘竞争度、I/O频繁度、数据块的空间分配和管理等[3-5]。

一般可以依照如下一些规则来调整磁盘I/O:

(1)数据库物理文件(一般由数据文件、日志文件和控制文件组成)应想方设法分散到不一样的磁盘,避免磁盘之间的相互竞争,达到均衡磁盘间负载的目的。

(2)最大限度平均分配同一个表空间的数据文件至多个磁盘上,实现磁盘间负载均衡。

(3)所有日志文件应放于不一样的磁盘上,减少日志文件争用磁盘。

(4)为减少索引数据文件与数据文件争用磁盘,应把表与索引分散不一样的表空间里,表数据和索引数据分散到不同的磁盘上。

(5)为减少应用之间争用磁盘。应该根据不同应用来创建相应表空间,把不一样表空间的数据文件保存到不同的磁盘上。

(6)为了减少数据库系统与其他应用竞争磁盘,其他应用不应再使用系统的表空间。

(7)创建一个这样的管理,它能够管理非系统的回滚段利用撤销表空间,进而防止由于磁盘的竞争影响事务的完成。

(8)创建一个这样的管理,它可以管理非系统临时段可以使用临时表空间,减少在存储空间的分配和回收中产生碎片。

(9)使用本地管理方式管理表空间,采用自动管理分配存储空间,千方百计避免产生碎片、出现行链接和出现行迁移。

(10)视表之特点与数据量大小,综合采用分区表、索引化表、分区索引、聚簇等结构,把数据分散到不同的数据文件里,进而提高系统I/O性能。

2.3 回滚段的设置

回退条目保存在回滚段里,用于保存被修改数据的初始版本,根据此信息,用户能够撤销还没有提交给系统的事务,从而是数据库能够保持数据一致性以及从实例崩溃里得到恢复的能力。回滚段在事务处理中起着关键作用,它的设置是否合理会制约系统的性能。

2.4 碎片整理

不断变化的数据库对象和数据操作会不断的产生磁盘碎片。碎片一般有索引级、表级、表空间级。

(1)索引级碎片通常情况下是由于叶节点的胡乱排序、索引值的不断变化而引起B-TREE结构的失衡、索引创建的太多等等因素导致的。要想单一化索引表,进而少产生索引碎片,可以采取索引尽量少创建,索引尽量建在变化频率比较低的列上或着先执行插入数据的操作,再创建表的索引等等措施。

(2)表级碎片一般是指不连续的又比较零散的一些空间。要想有效避免表级碎片的产生,数据块的大小和PCTFREE、PCTUSED参数要设置合理。常更新的表,PCTFREE设置较大的值,PCTUSED设置较小的值;常插入的表,PCTFREE设置较小的值,PCTUSED设置较大的值。

(3)表空间级碎片一般在段建立、扩展与删除的过程中产生。要想有效避免产生表空间级碎片,可以采取以下措施:重组表空间、执行ALTER TABLESPACE…COALESCES命令等等或者先运行EXPORT命令把数据导出来,接着再运行TRUNCATE命令把表中数据删除掉,最后再运行IMPORT命令把数据导入进来。

3 Oracle 11g常用优化工具

Oracle 11g自带了一些优化工具,利用这些工具对数据字典、动态性能视图等进行分析,最大限度的知晓当前的运行信息,更好的服务于系统性能优化[6-7]。

3.1 基本工具

(1)时间模型

时间模型是一组统计信息,通过它们可以大致了解时间花费在了 Oracle DB 的哪些方面。

(2)顶级等待事件

相关等待时间及其参数值都可以显示在其中。根据这些参数,可以知道等待发生在哪些对象或资源上。

(3)动态性能视图和表

由动态性能视图可以查看实例中不断变化的状态和条件的有关信息。

(4)预警日志

下列预警日志文件包含的信息,可以用于优化数据库: 执行归档的时间 、实例恢复的开始时间和完成时间 、死锁错误和超时错误 、不完整的检查点 、检查点的开始时间和结束时间。

(5)跟踪文件

可以在会话级别或实例级别启用或禁用服务器进程跟踪。用户跟踪文件包含该会话中跟踪的 SQL 语句的统计信息。用户跟踪文件是按每个服务器进程创建的。跟踪文件可以帮助优化数据库性能。

(6)Oracle企业管理器

Oracle企业管理器把一个中心控制台、多个代理、一些公共服务和工具结合在一起,为数据库的管理提供了一个集成的、综合的系统管理平台。

3.2 插件

(1)Statspack

利用Statspack插件能够轻而易举的定位数据库的瓶颈位置,记录下数据库的性能状态,远程技术人员也可以通过它迅速了解数据库的运行状况。

3.3 选件

(1)诊断包

诊断包(是Oracle 11g产品集的一部分)集成了许多自动性能诊断和监视功能,而这些功能是内置在核心数据库的引擎和企业管理器里面的。无论是用来管理一个还是多个数据库,它都能够提供一个完整的、经济高效的和容易使用的解决方案给数据库性能管理人员。

(2)优化包

优化包(Oracle 11g产品集的一部分)提供了一个经济高效且易于使用的解决方案,实现了整个应用程序调优过程的自动化。利用企业管理器中无缝集成的SQL Advisor功能,SQL性能得到了增强,为复杂、费时的应用程序自动调优任务提供了一个全面的解决方案。

4 结束语

Oracle 11g的性能调优在系统开发的每一个环节上都有体现,它是一个复杂持续的活动。要想获得很好地数据库性能,那么就应当合理地调整Oracle 11g系统配置,包括内存的调整、磁盘I/O的调整和磁盘碎片的调整等等。为了获得数据库良好的性能,应该综合利用多种策略规则和优化工具不断调整优化。

【参考文献】

[1]谷长勇,吴逸云,单永红,陈杰.Oracle 11g权威指南[M].2版.北京:电子工业出版社,2011,9:61-65.

[3]王海凤,王海亮,郑建茹,张立民.Oracle11g SQL和PL/SQL从入门到精通[M].北京:中国水利水电出版社,2008,01.

[4]盖国强,杨延琨.Oracle DBA手记3 数据库性能优化与内部原理解析[M].北京:电子工业出版社,2011,9.

[5]柳丹.Oracle PL/SQL面向对象特性Web应用研究[J].计算机技术与发展,2006,16(1):234-237.

[6]路川,胡欣杰.Oracle 11g宝典[M].北京:电子工业出版社,2009.

[7]童有奎.浅谈Oracle数据库性能优化方案[J].计算机应用,2005(3):25-26.

[责任编辑:杨玉洁]

(2)表级碎片一般是指不连续的又比较零散的一些空间。要想有效避免表级碎片的产生,数据块的大小和PCTFREE、PCTUSED参数要设置合理。常更新的表,PCTFREE设置较大的值,PCTUSED设置较小的值;常插入的表,PCTFREE设置较小的值,PCTUSED设置较大的值。

(3)表空间级碎片一般在段建立、扩展与删除的过程中产生。要想有效避免产生表空间级碎片,可以采取以下措施:重组表空间、执行ALTER TABLESPACE…COALESCES命令等等或者先运行EXPORT命令把数据导出来,接着再运行TRUNCATE命令把表中数据删除掉,最后再运行IMPORT命令把数据导入进来。

3 Oracle 11g常用优化工具

Oracle 11g自带了一些优化工具,利用这些工具对数据字典、动态性能视图等进行分析,最大限度的知晓当前的运行信息,更好的服务于系统性能优化[6-7]。

3.1 基本工具

(1)时间模型

时间模型是一组统计信息,通过它们可以大致了解时间花费在了 Oracle DB 的哪些方面。

(2)顶级等待事件

相关等待时间及其参数值都可以显示在其中。根据这些参数,可以知道等待发生在哪些对象或资源上。

(3)动态性能视图和表

由动态性能视图可以查看实例中不断变化的状态和条件的有关信息。

(4)预警日志

下列预警日志文件包含的信息,可以用于优化数据库: 执行归档的时间 、实例恢复的开始时间和完成时间 、死锁错误和超时错误 、不完整的检查点 、检查点的开始时间和结束时间。

(5)跟踪文件

可以在会话级别或实例级别启用或禁用服务器进程跟踪。用户跟踪文件包含该会话中跟踪的 SQL 语句的统计信息。用户跟踪文件是按每个服务器进程创建的。跟踪文件可以帮助优化数据库性能。

(6)Oracle企业管理器

Oracle企业管理器把一个中心控制台、多个代理、一些公共服务和工具结合在一起,为数据库的管理提供了一个集成的、综合的系统管理平台。

3.2 插件

(1)Statspack

利用Statspack插件能够轻而易举的定位数据库的瓶颈位置,记录下数据库的性能状态,远程技术人员也可以通过它迅速了解数据库的运行状况。

3.3 选件

(1)诊断包

诊断包(是Oracle 11g产品集的一部分)集成了许多自动性能诊断和监视功能,而这些功能是内置在核心数据库的引擎和企业管理器里面的。无论是用来管理一个还是多个数据库,它都能够提供一个完整的、经济高效的和容易使用的解决方案给数据库性能管理人员。

(2)优化包

优化包(Oracle 11g产品集的一部分)提供了一个经济高效且易于使用的解决方案,实现了整个应用程序调优过程的自动化。利用企业管理器中无缝集成的SQL Advisor功能,SQL性能得到了增强,为复杂、费时的应用程序自动调优任务提供了一个全面的解决方案。

4 结束语

Oracle 11g的性能调优在系统开发的每一个环节上都有体现,它是一个复杂持续的活动。要想获得很好地数据库性能,那么就应当合理地调整Oracle 11g系统配置,包括内存的调整、磁盘I/O的调整和磁盘碎片的调整等等。为了获得数据库良好的性能,应该综合利用多种策略规则和优化工具不断调整优化。

【参考文献】

[1]谷长勇,吴逸云,单永红,陈杰.Oracle 11g权威指南[M].2版.北京:电子工业出版社,2011,9:61-65.

[3]王海凤,王海亮,郑建茹,张立民.Oracle11g SQL和PL/SQL从入门到精通[M].北京:中国水利水电出版社,2008,01.

[4]盖国强,杨延琨.Oracle DBA手记3 数据库性能优化与内部原理解析[M].北京:电子工业出版社,2011,9.

[5]柳丹.Oracle PL/SQL面向对象特性Web应用研究[J].计算机技术与发展,2006,16(1):234-237.

[6]路川,胡欣杰.Oracle 11g宝典[M].北京:电子工业出版社,2009.

[7]童有奎.浅谈Oracle数据库性能优化方案[J].计算机应用,2005(3):25-26.

[责任编辑:杨玉洁]

(2)表级碎片一般是指不连续的又比较零散的一些空间。要想有效避免表级碎片的产生,数据块的大小和PCTFREE、PCTUSED参数要设置合理。常更新的表,PCTFREE设置较大的值,PCTUSED设置较小的值;常插入的表,PCTFREE设置较小的值,PCTUSED设置较大的值。

(3)表空间级碎片一般在段建立、扩展与删除的过程中产生。要想有效避免产生表空间级碎片,可以采取以下措施:重组表空间、执行ALTER TABLESPACE…COALESCES命令等等或者先运行EXPORT命令把数据导出来,接着再运行TRUNCATE命令把表中数据删除掉,最后再运行IMPORT命令把数据导入进来。

3 Oracle 11g常用优化工具

Oracle 11g自带了一些优化工具,利用这些工具对数据字典、动态性能视图等进行分析,最大限度的知晓当前的运行信息,更好的服务于系统性能优化[6-7]。

3.1 基本工具

(1)时间模型

时间模型是一组统计信息,通过它们可以大致了解时间花费在了 Oracle DB 的哪些方面。

(2)顶级等待事件

相关等待时间及其参数值都可以显示在其中。根据这些参数,可以知道等待发生在哪些对象或资源上。

(3)动态性能视图和表

由动态性能视图可以查看实例中不断变化的状态和条件的有关信息。

(4)预警日志

下列预警日志文件包含的信息,可以用于优化数据库: 执行归档的时间 、实例恢复的开始时间和完成时间 、死锁错误和超时错误 、不完整的检查点 、检查点的开始时间和结束时间。

(5)跟踪文件

可以在会话级别或实例级别启用或禁用服务器进程跟踪。用户跟踪文件包含该会话中跟踪的 SQL 语句的统计信息。用户跟踪文件是按每个服务器进程创建的。跟踪文件可以帮助优化数据库性能。

(6)Oracle企业管理器

Oracle企业管理器把一个中心控制台、多个代理、一些公共服务和工具结合在一起,为数据库的管理提供了一个集成的、综合的系统管理平台。

3.2 插件

(1)Statspack

利用Statspack插件能够轻而易举的定位数据库的瓶颈位置,记录下数据库的性能状态,远程技术人员也可以通过它迅速了解数据库的运行状况。

3.3 选件

(1)诊断包

诊断包(是Oracle 11g产品集的一部分)集成了许多自动性能诊断和监视功能,而这些功能是内置在核心数据库的引擎和企业管理器里面的。无论是用来管理一个还是多个数据库,它都能够提供一个完整的、经济高效的和容易使用的解决方案给数据库性能管理人员。

(2)优化包

优化包(Oracle 11g产品集的一部分)提供了一个经济高效且易于使用的解决方案,实现了整个应用程序调优过程的自动化。利用企业管理器中无缝集成的SQL Advisor功能,SQL性能得到了增强,为复杂、费时的应用程序自动调优任务提供了一个全面的解决方案。

4 结束语

Oracle 11g的性能调优在系统开发的每一个环节上都有体现,它是一个复杂持续的活动。要想获得很好地数据库性能,那么就应当合理地调整Oracle 11g系统配置,包括内存的调整、磁盘I/O的调整和磁盘碎片的调整等等。为了获得数据库良好的性能,应该综合利用多种策略规则和优化工具不断调整优化。

【参考文献】

[1]谷长勇,吴逸云,单永红,陈杰.Oracle 11g权威指南[M].2版.北京:电子工业出版社,2011,9:61-65.

[3]王海凤,王海亮,郑建茹,张立民.Oracle11g SQL和PL/SQL从入门到精通[M].北京:中国水利水电出版社,2008,01.

[4]盖国强,杨延琨.Oracle DBA手记3 数据库性能优化与内部原理解析[M].北京:电子工业出版社,2011,9.

[5]柳丹.Oracle PL/SQL面向对象特性Web应用研究[J].计算机技术与发展,2006,16(1):234-237.

[6]路川,胡欣杰.Oracle 11g宝典[M].北京:电子工业出版社,2009.

[7]童有奎.浅谈Oracle数据库性能优化方案[J].计算机应用,2005(3):25-26.

[责任编辑:杨玉洁]