Oracle命中率查询,SGA调优添加时间:2007-4-22
--数据高速缓存区命中率
--计算公式:1-(physical reads / (db block gets + consistent gets)) --命中率应大于0.90最好 select name,value from v$sysstat where name in ('physical reads','db block gets','consistent gets') / --共享区库缓存区命中率 --计算公式:SUM(pins - reloads) / SUM(pins) --命中率应大于0.99 select sum(pins-reloads)/sum(pins) from v$librarycache / --共享区字典缓存区命中率 --计算公式:SUM(gets - getmisses - usage -fixed) / SUM(gets) --命中率应大于0.85 select sum(gets-getmisses-usage-fixed)/sum(gets) from v$rowcache / --检测回滚段的争用 --SUM(waits)值应小于SUM(gets)值的1% select sum(gets),sum(waits),sum(waits)/sum(gets) from v$rollstat / --检测回滚段收缩次数 select name,shrinks from v$rollstat, v$rollname where v$rollstat.usn = v$rollname.usn / --关于SGA的调优 (****) : OS 使用内存+ SGA + session*(sort_area_size + hash_area_size + 2M) < 总物理RAM 为好 log_buffer : 128K ---- 1M 之间通常问题不大,不应该太大 large_pool_size :如果不设置MTS,通常在 RMAN 、OPQ 会使用到,但是在10M --- 50M 应该差不多了。 java_pool_size : 若不使用java,给30M通常就够了 data buffer ,在做了前面的设置后,凡可以提供给oracle的内存,都应该给data buffer = (db_block_size * db_block_buffers) 不能设置 shared_pool_size 过大,通常应该控制在200M--300M 再具体化,注意满足上面(****) 的原则的基础上可以参考如下设置 如果512M RAM 建议 shared_pool_size = 50M, data buffer = 200M 如果1G RAM shared_pool_size = 100M , data buffer = 500M 如果2G shared_pool_size = 150M ,data buffer = 1.2G 物理内存再大已经跟参数没有关系了 假定64 bit ORACLE 内存4G shared_pool_size = 200M , data buffer = 2.5G 内存8G shared_pool_size = 300M , data buffer = 5G 内存 12G shared_pool_size = 300M-----800M , data buffer = 8G |
|