■ 1.高速缓冲区
select 100*(1-(select value from v$sysstat where name = 'physical reads')/((select value from v$sysstat where name = 'db block gets')+(select value from v$sysstat where name = 'consistent gets'))) 高速缓冲区命中率 from dual;
>=90%
提高命中率方法:增加高速缓存区DB_BLOCK_BUFFERS=
■ 2.库缓冲区
select 100*sum(pins-reloads)/sum(pins) 库缓冲区命中率 from v$librarycache;
>=99
可以增加共享池shared_pool_size=
但应该查询当前的空闲内存:如下
SQL> select * from v$sgastat where name = 'free memory';
POOL NAME BYTES
----------- -------------------------- ----------
shared pool free memory 19997888
large pool free memory 4291456
java pool free memory 32768
如果命中率低,但空闲内存较多,可能是应用程序的问题
注意:SQL语句要严格一致,才能被不需parse
■ 3.字典缓冲区(行缓冲区)
select 100*sum(gets - getmisses - usage - fixed)/sum(gets) 行缓冲区命中率 from v$rowcache;
>= 85
调整方法与调试库缓冲区命中率是一致的,因为,ORACLE自己决定使用多少字典缓冲区内存。
■ 4.回滚段
4.1检测回滚段争用
select 100*sum(waits)/sum(gets) 回滚段争用率 from v$rollstat;
<1
4.2检测收缩
select b.name,a.shrinks from v$rollstat a,v$rollname b where a.usn=b.usn;
shrinks(收缩率)太大,需要调整回滚段大小
■ 5.redo日志缓存器
select name,value from v$sysstat where name = 'redo buffer allocation retries';
value显示等待redo日志缓存器展开槽的次数。
多检查几次,如果数字是增加的,可以增加LOG_BUFFER=
【责编:admin】
--------------------next---------------------
阅读(235) | 评论(0) | 转发(0) |