土曜日, 9月 09, 2006

メモリ

■メモリ

各メモリーの大きさの妥当性を監視
1 共有プール(SHARED_POOL_SIZE)
. ライブラリ・キャッシュ
. ディクショナリキャッシュ
2 データベースバッファキャッシュ(DB_BLOCK_BUFFERS)
3 REDOログ・バッファ(LOG_BUFFER)

●ライブラリ・キャッシュ
select sum(reloads)/sum(pins) from v$librarycache;

SUM(RELOADS)/SUM(PINS)
----------------------
.002784741
reload率が1%を上回る場合は、初期化パラメータSHARED_POOL_SIZEの値を増やす

●ディクショナリキャッシュ
select sum(getmisses)/sum(gets) from v$rowcache;

SUM(GETMISSES)/SUM(GETS)
------------------------
.016589166

ミス率が10~15%を上回る場合は、初期化パラメータSHARED_POOL_SIZEの値を増やす

●データベースバッファキャッシュ(DB_BLOCK_BUFFERS)
データベース・バッファ・キャッシュのヒット率の計算:
1 - (physical reads)/( db block gets + consistent gets )
データディクショナリ v$sysstatの項目
physical reads:48
db block gets:41
consistent gets:44
select 1 - (physicalreads.value)/(dbblockgets.value + consistentgets.value) as buffercache_hit_raito
from
(select value from v$sysstat where STATISTIC# = 48) physicalreads,
(select value from v$sysstat where STATISTIC# = 41) dbblockgets,
(select value from v$sysstat where STATISTIC# = 44) consistentgets

BUFFERCACHE_HIT_RAITO
---------------------
.976029012

ヒット率が 60 ~ 70 % (90%以下の方がよい?)を下回る場合は、初期化パラメータDB_BLOCK_BUFFERSの値を増やす

●ユーザグローバル領域で最大メモリを消費しているユーザを検索
SELECT USERNAME, SUM(VALUE) "TOTAL UGA MEMORY(BYTES)"
FROM V$SESSION SE, V$SESSTAT ST, V$STATNAME NM
WHERE SE.SID = ST.SID
AND ST.STATISTIC# = NM.STATISTIC#
AND NM.NAME = 'session uga memory max'
GROUP BY USERNAME;

0 件のコメント: