Oracle性能调优方法

上传人:飞*** 文档编号:39951192 上传时间:2018-05-21 格式:DOC 页数:4 大小:32.50KB
返回 下载 相关 举报
Oracle性能调优方法_第1页
第1页 / 共4页
Oracle性能调优方法_第2页
第2页 / 共4页
Oracle性能调优方法_第3页
第3页 / 共4页
Oracle性能调优方法_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《Oracle性能调优方法》由会员分享,可在线阅读,更多相关《Oracle性能调优方法(4页珍藏版)》请在金锄头文库上搜索。

1、Oracle 性能调优方法性能调优方法上一篇 / 下一篇 2009-03-31 14:03:26 查看( 109 ) / 评论( 0 ) / 评分( 0 / 0 ) oracle 是一个高性能数据库数据库软件软件。用户可以通过参数的调整,达到性能的优化。性能优化主要分为两部分:一是数据库管理管理员通过对系统参数的调整达到优化的目的;二是开发人员通过对应用程序的优化达到调整的目的。在此,仅就系统参数的调整进行探讨,而不涉及应用程序的优化。对系统参数的调整,可以分为以下几个部分:调整内存分配调整内存分配系统全局区(SGA)是一个分配给 ORACLE 包含 ORACLE 数据库实例控制信息的内存段。

2、SGA 的大小对系统性能的影响极大,其缺省参数设置只适用于配置很低的计算机,不适应收入系统现有设备的需要。这些参数若不作调整,会对系统资源造成巨大浪费。就收入系统的 Alpha 1200 而言,SGA 的大小以 160 兆左右为宜。初始化参数文件中的一些参数对 SGA 的大小有决定性的影响。参数DBBLOCKBUFFERS(SGA 中存储区高速缓存的缓冲区数目),参数SHAREDPOOLSIZE(分配给共享 SQL 区的字节数),是 SGA 大小的主要影响者。DBBLOCKBUFFERS 参数是 SGA 大小和数据库性能的最重要的决定因素。该值较高,可以提高系统的命中率,减少 I/O。每个缓冲

3、区的大小等于参数 DBBLOCKSIZE 的大小。ORACLE 数据库块以字节表示大小。Oracle SGA 区共享池部分由库高速缓存、字典高速缓存及其他一些用户和服务器会话信息组成,共享池是最大的消耗成分。调整 SGA 区各个结构的大小,可以极大地提高系统的性能。调整 Library Cache库高速缓存(Library Cache)中包含私用和共享 SQL 区和 PL/SQL 区。调整 SGA 的重要问题是确保库高速缓存足够大,以使 ORACLE 能在共享池中保持分析和执行语句,提高语查询 V$LIBRARYCACHE 数据字典视图句分析和执行效率,降低资源消耗。通过比较 Library

4、Cache 的命中率来决定它的大小。(其中,pins 表示高速缓存命中率,reloads 表示高速缓存失败)SQLSELECT SUM(pins),SUM(reloads) FROM v$librarycache;如果 sum(reload)/sum(pins)0,说明 Library Cache 的命中率比较合适,若大于 1,则需要增加共享池(SHAREDPOOLSIZE)的大小(在初始化参数文件中)。调整数据字典高速缓存(Dictionary Cache)数据字典高速缓存包括了有关数据库的结构、用户、实体信息等。数据字典的命中率对系统有很大的影响。命中率的计算中,getmisses 表示失

5、败次数,gets 表示成功次数。查询 V$ROWCACHE 表:SQLSELECT (1-(SUM(getmisses)/(SUM(gets)+SUM(getmisses)*100FROM v$rowcache;如果该值90%,说明命中率合适。否则,应增大共享池的大小。调整数据库缓冲区高速缓存Oracle 在运行期间向数据库高速缓存读写数据,高速缓存命中表示信息已在内存中,高速缓存失败意味着 ORACLE 必需进行磁盘 I/O。保持高速缓存失败率最小的关键是确保高速缓存的大小。初始化参数DBBLOCKBUFFERS 控制数据库缓冲区高速缓存的大小。可通过查询V$SYSSTAT 命中率,以确定是

6、否应当增加 DBBLOCKBUFFERS 的值。SQLSELECT name,value FROM V$SYSSTATWHERE name IN (dbblock gets,consistent gets,physical reads);通过查询结果命中率=1-physical reads/(dbblock gets+consistent gets)如果命中率SELECT name,phyrds,phywrts FROM v$datafile df,v$filestat fsWHERE df.file# =fs.file#;对于使用频率较高的物理文件,可以采用以下策略:将 I/O 尽可能平均分

7、配在尽可能多的磁盘上。为表和索引建立不同的表空间。将数据文件与重做日志文件分离在不同的磁盘上。减少不经 oracle SERVER 的磁盘 I/O。调整竞争调整竞争当多个进程对相同的资源发出申请时,产生竞争。修改 process 参数该参数定义可以同时连接到 oracle 数据库的最大进程数,缺省值为 50。注意,oracle 的后台进程也包括在此数目中,建议将该值改为 200。减少调度进程的竞争减少调度进程的竞争,通过查询 v$dispatcher 表来判定调度进程的竞争SQLSELECT network ,sum(busy)/sum(busy)+sum(idle) FROM v$dispa

8、tcherGROUP BY network;如果某种协议忙的比率超过 50%,应增加 MTSDISPATCHERS 的值。减少多线程服务进程竞争首先查询 V$SYSSTAT 表判定是否发生多线程服务进程竞争:SQLSELECT DECODE(totalq,0,No request,wait/totalq|hunderths of seconds) FROM v$sysstatWHERE type=common;如果共享服务进程数量已达到初始化参数文件中 MTSMAXSERVERS指定的最大值,但应用运行时,平均请求等待时间仍持续增长,那么,应加大MTSMAXSERVERS 的值。减少重做日志缓

9、冲区竞争通过查询 V$SYSSTAT 表判定 redo log 文件缓冲区是否足够。SQLSELECT name,value FROM v$sysstatWHERE name=redo log space request;此处 value 的值应接近于 0,否则,应增大初始化参数文件的LOGBUFFEQS 的值。减少回退段竞争回退段对性能也有影响,根据事物大小情况来分配合适的回退段。首先判定回退段的数量能否满足系统运行的需要:查询 V$WAITSTAT 表与 V$SYSSTAT 表SQLSELECT class,count FROM v$waitstatWHERE class IN (syst

10、em undo header,system undo block,undo header,undo block);SQLSELECT sum(value)FROM v$sysstat WHERE name IN (db block gets,consistent gets);如果任何一个 class/sum(value)10%,那么考虑增加回退段。回退段的数量一般按如下规律设定:用户数 回退段个数nSELECT class,count FROM v$waitstatWHERE class=free list;SQLSELECT sum(value)FROM v$sysstatWHERE name IN (db block gets,consistent gets);如果 class/sum(value)1%,则应增加该表的 Free List 的值。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号