データベース・バッファ・キャッシュはアクセスされたデータをキャッシュするメモリー領域で、アクセスするデータがこの領域上にキャッシュされていればデータファイルからデータを読み込む必要がなくなり、パフォーマンスが向上します。
データベース・バッファ・キャッシュ上のデータがどれだけ効率よく利用されているかはデータベース・バッファ・キャッシュヒット率で判断します。
データベース・バッファ・キャッシュヒット率はv$sysstatから算出することができます。
select s1.value CONSISTENT_GETS, s2.value DB_BLOCK_GETS, s3.value PHYSICAL_READS, trunc( ( 1 - s3.value / ( s1.value + s2.value ) ) * 100, 3 ) "HIT_RATIO(%)" from v$sysstat s1,v$sysstat s2,v$sysstat s3 where s1.name = 'consistent gets' and s2.name = 'db block gets' and s3.name = 'physical reads'; CONSISTENT_GETS DB_BLOCK_GETS PHYSICAL_READS HIT_RATIO(%) --------------- ------------- -------------- ------------ 539900179 46021128 11256748 98.078
データベース・バッファ・キャッシュヒット率は90%以上が望ましいとされています。
データベース・バッファ・キャッシュヒット率が著しく低い場合は、データベース・バッファ・キャッシュサイズが小さすぎる可能性があるため、初期化パラメータDB_CACHE_SIZEの値を大きくすることを検討します。
また、場合によっては無駄なデータがキャッシュされていないかどうかを調べ、アプリケーション側を見直すことも必要になります。