关于Oracle10g数据库系统性能优化与调整的研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于Oracle 10g数据库系统性能优化与调整的研究【摘要】当前Oracle数据库应用极为广泛,但是不断增加的数据量和访问量等因素导致数据库系统性能的降低,出现吞吐量降低、响应时间变长等相关的数据库性能问题,这就产生了对数据库系统的优化的需求。如何对数据库系统进行优化和调整,才能获得更快的响应时间、更大的吞吐量、以及更少的资源占用呢?在本文中笔者就Oracle 10g数据库系统性能优化与调整进行了相关方面的研究。【关键词】Oracle 10g数据库;系统性能;优化与调整;SQL语句优化
1.前言
IT系统随着支持用量的增长和新业务的不断扩展,数据处理量大量增加,业务处理模式日趋复杂,必然导致主机CPU和I/O占用不断呈线性增加。因此,充分使用先用硬件的处理能力对于保护投资至关重要。Oracle数据库是现在使用最广泛的大型数据库之一,但是在实际的应用中,不断增加的数据量和访问量都会导致Oracle数据库系统性能的降低现象,这就产生了对Oracle数据库系统的优化的需求,通过相关的优化和调整手段,以实现更快的响应时间、更大的吞吐量、以及更少的资源占用等。
2.影响数据库系统性能的因素
就Oracle 10g数据库来说,影响其系统运行性能的主要因素以及这些因素在Oracle 10g数据库系统性能中的地位如表1所示。
表1 影响Oracle10g数据库系统性能的相关因素
3.数据库系统性能优化与调整
数据库系统的优化与调整的目的是通过对Oracle 10g数据库性能的相关优化以达到有效提高Oracle 10g数据库性能。Oracle 10g数据库的性能优化与调整应从影响系统性能的因素(如数据库服务器性能、数据库配置等)着手,实现对数据库的体系结构、软件结构、具体的业务和技术等方面的优化效果,使得数据库系统实现更快的响应时间、更大的吞吐量、以及更少的资源占用等性能。
3.1内存区调整与优化
对Oracle 10g数据库实例的内存结构进行内存区调整与优化应从SGA和PGA 两个方面着手。其中SGA是Oracle数据库的核心部分,对SGA进行相关的调整与优化对Oracle 10g数据库系统性能工作中具有极为重要的影响,SGA的调整与优化主要包括数据缓冲区、字典缓冲区、日志缓冲区以及SQL共享池的调整与优化。
3.1.1数据块缓冲区优化
这部分缓冲区占整个数据库大小的1%-2%,如果Oracle 10g数据库用户请求的数据在数据块缓冲区,则被请求的数据可以不经由服务器进程读取数据而直接被返回给用户,这种方式将数据库用户获取数据的时间大为缩短。而对于用户访问数据不在数据块缓冲区的情况,则用户查询的数据首先要经过服务器读取这一“中间”过程,使得用户获取的时间大为延长。因此,对数据块缓冲区进行必要的优化,保证尽量多的用户请求数据在缓冲区中对于提高系统服务器性能是极为重要的。
3.1.2重做日志缓冲区
这一缓冲区的主要用途为在Oracle 10g数据库恢复过程中用于前滚操作,
用于存放数据的修改信息。如果日志缓冲区在没有写入日志文件的情况下出现已满的现象,则日志缓冲区写入失败。重做日志缓冲区,有效调整缓冲区即LOG-BUFFER的大小可有效提高数据库性能。
3.1.3 SQL共享池优化
SQL共享池可以通过缓存的形式将被解析过的SQL重新启用。如果SQL共享池设置过小,语句将被连续不断地再装入到库缓存,影响系统性能。设置的共享池大小是否合理与库缓冲区和数据字典缓冲区是息息相关的,主要体现在两者的命中率上。合理设置共享池大小,使得共享池可以存储大多数语句的一个已分析版本,可以大大加快数据查询速度,提高系统运行性能。
3.1.4 PGA 区调整与优化
PGA区主要包括两个区域,分别为私有会话区以及排序区。根据实际情况科学布置排序区对有效提高数据库性能效果明显。在Oracle 10g数据库中,数据库可以实现排序过程主要有两种途径:(1)在PGA排序区进行排序操作;(2)在临时表空间的临时段进行排序操作。建议用户在使用Oracle 10g数据库过程中的排序操作尽量在排序区的中进行而尽量避免在临时表空间的临时段进行,这主要是因为对磁盘进行I/O操作也需使用临时表空间的临时段,这会形成表空间临时段的竞争,降低排序的效率。合理布置整排序区的大小,确保排序区的命中率在95%以上对于提高系统性能是极为有利的。
3.2磁盘I/O调整
在影响系统服务器的诸多因素中,磁盘的I/O性能是一个重要影响因素。根据影响磁盘I/O速度的因素我们可以对磁盘I/O作如下几个方面的调整以提高服务器性能:(1)有分配性的采用不同磁盘空间存放数据库的物理文件(数据文件、日志文件、控制文件等),有效降低文件存储时的磁盘竞争,采用这种手段还能使得磁盘负载均衡化;(2)采用不同的表空间分配表和索引,将同一个表空间的数据文件作分散处理,针对不同的应用创建不同的表空间对象,并采用不同的磁盘空间分配表数据和索引数据,有效降低不同数据文件、不同表数据和索引数据以及不同应用等对象对磁盘的竞争,实现磁盘之间的负载均衡;(3)系统表空间尽量不要再分配给其他应用使用,针对非系统回滚段的管理,可以采用创建撤销表空间的方式完成,对于用户非系统临时段的管理,可以采用创建临时表空间的
方式完成,使得存储空间分配与回收时的碎片保持较少的数量,有效避免由于磁盘竞争而影响事务完成的的现象发生;(4)分别采用本地管理方式和自动管理方式对表空间和存储空间的分配加以管理,有效消除行链接、行迁移现象。通过以上手段能够有效提高磁盘的I/O性能。
3.3回滚段设置
回滚段用于保存回退条目,在数据库事务处理中起着关键的作用,合理设置混滚段对于提高系统性能也是极为有利的。在Oracle 10g数据库中,对回滚段的优化使得使用撤销表空间自动(也可以手动)进行回滚段的管理更为方便便捷。可以使用撤销表空间自动进行回滚段的管理,也可以手动进行回滚段的管理。对于手段管理的情况,具体需要建立回滚段的大小需要参考处理事务的大小情况,并将建立的混滚段分配到到不同的表空间[1]。此外,还可以把回滚段定义为交替引用,以完成回滚段的循环分配事务,均衡磁盘负载,达到优化数据库系统性能的目的。
3.4碎片整理
在Oracle 10g数据库中的碎片主要来源于数据库对象不断变化以及数据库用户对数据不断操作。碎片需要占用数据库资源,浪费大量磁盘空间,降低数据库性能。碎片主要有三类:表空间级碎片,这种碎片主要来源于段的建立、扩展、删除等操作,而碎片的消除方法为重组表空间、执行ALTER TA-BLESPACE…COALESCES命令等;表级碎片来源于行迁移或行链接,避免产生这类碎片的方式为设置合适大小的数据块以及PCTFREE、PCTUSED参数;索引级碎片主要产生于索引值变化频繁,频繁的索引值变化引起B-TREE结构失衡或叶节点排序混乱[2],进而产生索引级碎片,减少索引碎片的方式减少表上索引数量、减少索引表的变化等。通过碎片整理有效降低碎片的占用资源,使得数据库性能得到优化。
3.5 CPU性能调整
服务器的CPU为数据库的核心,其使用情况能在很大程度上影响数据库的性能。CPU性能调整主要有如下两个方面:(1)在执行事务处理和查询过程中采用多个CPU,多CPU的并行技术的发展极为迅速,将数据库服务器和应用程序的CPU 请求分开是CPU性能调整的有效方式;(2)PQO方式具有能够在多个CPU间分配SQL请求处理的优势,使用 PQO方式进行数据查询可以对处于不同磁盘的数据同