UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

キャッシュヒット率を調べる

キャッシュヒット率を調べる


0.更新履歴

  • 2001.03.05 新規作成

1.はじめに

 このドキュメントは,Oracle8.0.5で動いているOLTPシステムについて,そのキャッシュ利用について調べたことを記述するものである.

2.ライブラリキャッシュのヒット率

 ライブラリキャッシュは,共有プール内に割り当てられ,共有SQL領域,PL/SQL領域を含む.
 実行する頻度の高いSQL文がライブラリキャッシュに残るように調整できれば良い.

ライブラリキャッシュの統計情報表示SQL文
select sum(pins) "Executions",
sum(reloads) "Misses",
round(100*(1-(sum(reloads)/sum(pins))),3) "Hit Ratio"
from v$librarycache

 実行してみる.

SVRMGR> select sum(pins) "Executions",
     2> sum(reloads) "Misses",
     3> round(100*(1-(sum(reloads)/sum(pins))),3) "Hit Ratio"
     4> from v$librarycache;
Executions Misses     Hit Ratio
---------- ---------- ----------
      8314          9     99.892
1行選択されました。
SVRMGR>

 この場合,8314のSQL文が実行され,9個がキャッシュにヒットしなかったため,99.892%のヒット率となっている.

 90%以下になるようであれば,SHARED_POOL_SIZEの値を大きくする.

3.ディクショナリキャッシュのヒット率

 ディクショナリキャッシュは,共有プール内に割り当てられ,データディクショナリ情報を保持している. 参照する回数の多いデータディクショナリ情報がキャッシュに残るようにすべきである.

 

データディクショナリキャッシュの統計情報表示SQL文
select sum(gets) "Gets",
sum(getmisses) "Misses",
round(100*(1-(sum(getmisses)/sum(gets))),3) "Data Dict Hit Ratio"
from v$rowcache
where gets <>0

 実行してみる.

SVRMGR> select sum(gets) "Gets",
     2> sum(getmisses) "Misses",
     3> round(100*(1-(sum(getmisses)/sum(gets))),3) "Data Dict Hit Ratio"
     4> from v$rowcache
     5> where gets <>0;
Gets       Misses     Data Dict
---------- ---------- ----------
     12238        504     95.882
1行選択されました。
SVRMGR>

 90%以下になるようであれば,SHARED_POOL_SIZEの値を大きくする.

4.データベースバッファキャッシュヒット率

 DB_BLOCK_BUFFERSで定義したバッファキャッシュが効率的に利用されているかを検討する.

データベースバッファキャッシュの統計情報表示SQL文
select (a.value+b.value) "Logi Reads",
c.value "Phy  Reads",
round(((1-(c.value / (a.value+b.value))) * 100),3) "Buffer Hit Ratio"
from v$sysstat a,v$sysstat b,v$sysstat c
where a.name = 'db block gets' and
b.name = 'consistent gets' and
c.name = 'physical reads'

 実行してみる.

SVRMGR> select (a.value+b.value) "Logi Reads",
     2> c.value "Phy  Reads",
     3> round(((1-(c.value / (a.value+b.value))) * 100),3) "Buffer Hit Ratio"
     4> from v$sysstat a,v$sysstat b,v$sysstat c
     5> where a.name = 'db block gets' and
     6> b.name = 'consistent gets' and
     7> c.name = 'physical reads';
Logi Reads Phy  Reads Buffer Hit
---------- ---------- ----------
    693954      73918     89.348
1行選択されました。
SVRMGR>

 90%を下回る場合,DB_BLOCK_BUFFERSを増やしたほうが良い.



広告スペース
Google