メモリ問題の種類

STATSPACKで検出できるメモリ関連の問題は主に以下の3つです。 Advisory情報が section/post-07(Buffer Pool / PGA)と section/post-10(SGA / Shared Pool)に分かれている点に注意してください。

問題の種類影響見る場所
Buffer Cache不足物理I/O増加、db file読み取り待機増加Buffer Hit % / Buffer Pool Advisory(定義書 PART 07)
Shared Pool不足ハードパース増加、ライブラリキャッシュ競合Shared Pool Advisory(定義書 PART 10)
PGA/ソートエリア不足一時ディスクへのspill、direct path read tempPGA / Memory Statistics(定義書 PART 07)

全体フローは PART 01、I/Oとの関係は PART 06 I/O分析 を参照。

Buffer Cache / Buffer Pool Advisoryの見方

Buffer Pool Statistics(定義書 PART 07)でキャッシュ効率を確認し、 Buffer Pool Advisory(定義書 PART 07)でサイズ変更の効果をシミュレートします。

確認箇所見る値目安
Instance Efficiency / Buffer Hit %バッファキャッシュヒット率95%以上。低い場合はcache増加を検討
Buffer Pool Advisory / Est Phys Readsキャッシュサイズ別の推定物理読み込み数Physical Reads が急減するサイズまでcacheを増やす
Buffer Wait Statistics / # Waitsバッファ待ち発生回数ゼロに近いほど良い。多い場合はLatch/Lock診断へ

⚠️ Buffer Hit %の罠

Buffer Hit %が高くてもGets自体が膨大な場合は非効率なSQLがある可能性があります。絶対値(Logical Reads/s)も合わせて確認してください。

Shared Pool Advisoryの見方

Shared Pool Advisory(定義書 PART 10)はShared Pool(ライブラリキャッシュ + データディクショナリキャッシュ)のサイジング勧告です。

見る値判断のポイント
Est Lib Cache Time Saved (s)サイズを増やした場合のライブラリキャッシュ時間削減量。増加効果が大きいサイズに設定する
Estd Lib Cache Saved Factor現状比の改善倍率。1.0超なら増加効果あり

詳細は PART 10 — SGA / Advisory / パラメータ(定義書) を参照。

SGA Target Advisoryの見方

SGA Target Advisory(定義書 PART 10)はSGA全体サイズ変更時の効果を示します。 AMM/ASMM使用時の sga_target チューニングに活用します。

見る値判断のポイント
Est DB Time (s)SGA Target 変更時の推定DB Time。最もDB Timeが低くなるサイズを選ぶ
SGA Size Factor現在のSGAサイズに対する比率

サイジング改善の方向性

メモリ改善の優先順位

① Buffer Hit % が低い → db_cache_size または sga_target の増加
② Library Hit % が低い / Hard Parse多い → shared_pool_size の増加
③ direct path read temp が多い → pga_aggregate_target の増加
④ SGA Target Advisory でDB Timeが改善するサイズに sga_target を調整