oracle参数调整

 
*DB_BLOCK_BUFFERS:该参数定义内存中高速缓存的数据库块缓冲区的数目。高速缓存越大,oracle可装入内存的数据就越多,磁盘的IO就越少,系统的性能就越好。
通过计算高速缓冲区命中率,可以知道DB_BLOCK_BUFFERS是否足够。计算命中率的基本思路为:命中率=(逻辑读次数-物理读次数)/逻辑读次数。
数据字典V$SYSSTAT中记录了系统的逻辑读和物理读次数,检索语句如下:
Select name,value from v$sysstat
Where name in(‘db block gets’,’consistent gets’,’physical reads’);
对于一般的应用环境,要求此值大于80%,当命中率低于80%时,需要增加DB_BLOCK_BUFFERS。
而当DB_BLOCK_BUFFERS增加到一定的数值后,再增加此值,对系统性能的提高微乎其微,但却浪费了有限的内存资源。在系统内存资源有限,同时高速缓冲区命中率很高的情况下,可以考虑减少一定数量的DB_BLOCK_BUFFERS。
*SHARED_POOL_SIZE(共享缓冲池大小):此参数是定义内存中LIBRARYCACHE(存放共享SQL和PLSQL,是SGA共享SQL池的一部分)和DATA DICTIONARY CACHE的字节数量,library cache和data dictionary cache的大小只能通过shared_pool_size间接调整。
数据字典v$librarycache中存储着SQL的执行次数和解析次数,解析次数和执行次数的比值应该小于0.01,理想值为0,否则要加大SHARED_POOL_SIZE的值。
Select sum(reloads)/sum(pins) * 100 from v$librarycache;
动态性能表v$rowcache跟踪cache的执行,要求失败(misses)和获得(gets)的比值应当很低。Select sum(getmisses)/sum(gets)*100 from v$rowcache的结果值要小于15,否则要加大shared_pool_size.
*LOG_BUFFER此参数是用来定义内存中重做日志缓冲区的大小,虽然它相对SGA较小,但是此值太小时,LGWR进程会频繁将LOG BUFFER中的数据写入磁盘,增加IO次数,影响系统性能。
Select name, value from v$sysstat where name = ‘redo buffer space requests’得到的Value值应该为0,否则应该增加log_buffer参数的值以使得该值为0.但是log_BUFFER的值大于3M是没有意义的。
*sort_area_size:指定用户进程内用来排序的内存大小,它是PGA的一部分,对于含有大量索引数据的排序,内存中的sort area可能不能完全放下全部排序数据,此时oracle不得不在磁盘上完成这一处理,这样将引起大量的磁盘操作而影响系统性能。V$sysstat表记载有系统的排序信息,通过查看此动态视图可确定是否有大量的排序是在磁盘上完成的,从而决定修改此参数。此参数可以动态调整,alter session改变当前会话, alter system deferred为数据库的所有后续进程更改此参数。
Select name,sum(value) from v$sysstat where name like ‘sort%’ group by name;
如果有相当多的排序在磁盘上进行,应增大sort_area_size的数值。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值