|
备份恢复 | Oracle | 854 次查看 |
|---|---|---|
|
||
■ 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= |
||