A technical troubleshooting blog about Oracle with other Databases & Cloud Technologies.

Buffer & Dictionary Hit Ratio

1 min read

The Data Buffer Hit Ratio Oracle metric is a measure of the effectiveness of the Oracle data block buffer. The higher the buffer hit ratio, the more frequently Oracle found a data block in memory and avoid a disk I/O. 

The buffer hit ratio (BHR) indicates the current ratio of buffer cache hits to total requests, essentially the probability that a data block will be in-memory on a subsequent block re-read. A correctly tuned buffer cache can significantly improve overall database performance.

select (1-(sum(decode(name, ‘physical reads’, value, 0))/
(sum(decode(name, ‘db block gets’, value, 0)) +
(sum(decode(name, ‘consistent gets’, value, 0))))))*100 “Buffer Hit Ratio”
from v$sysstat;

Read Hit Ratio

Buffer hit ratio, ideal value would be 98%-100%. If you are not using automatic shared memory changing db_cache_size could increase performance, if using automatic shared memory changing sga_target and sga_max_size.

A cache hit ratio should be more than 95 percent considered good in Oracle.
When we start the database its first time load all the data dictionary cache. so that time you will get the value less.
If value is getting less than 95% then probably we need to increase the size of the SHARED_POOL_SIZE parameter.

select sum(gets) as "Gets", sum(getmisses) as "Misses", (1-(sum(getmisses)/sum(gets)))*100 as "CACHE HIT RATIO"
from gv$rowcache;
select (1-(sum(getmisses)/(sum(gets)+sum(getmisses))))*100 “Dict Hit Ratio”
from v$rowcache;

Dict Hit Ratio