メモリ(SGA / PGA)
Buffer Cache
頻繁にアクセスするデータブロックをキャッシュする領域。
ヒット率 95% 以上が理想。それより低い場合は Buffer Cache が小さすぎる可能性がある。
Shared Pool
SQLの解析結果(実行計画)をキャッシュする領域。
- Library Cache Hit Ratio を確認
- 低い場合はハードパースが多発している可能性
- バインド変数の使用、Shared Pool の拡大を検討
PGA
各セッションのソート・ハッシュ結合用ワーク領域。
Over Allocation 数が 0 に近い ことを確認。
0より大きいと、ワーク領域がディスクに溢れている(Spill to Disk)兆候。
I/O統計のポイント
物理読み取り(Physical Reads)
ディスクから実際に読み込んだブロック数。多いほどBuffer Cacheが効いていないことを示します。
物理書き込み(Physical Writes)
ディスクへ書き出したブロック数。DBWR、LGWRのI/O負荷を示します。
Redo Size
生成された Redo ログの量。COMMIT 頻度・DML 量の指標になります。
- Redo Size が異常に大きい ⇒ 大量DMLが走っている
- Redo Size / commit数 で1コミットあたりの変更量がわかる
Tablespace I/O Stats
表領域ごとのI/O分布。特定の表領域にI/Oが集中していないかを確認します。
I/O 集中は 特定のデータファイルやディスク群の問題である場合が多い。
Tablespace I/O Stats で表領域別の偏りを確認し、ホットな表領域があれば物理ディスクの分散を検討する。
典型的な対処
- USERS表領域に集中 ⇒ 業務テーブルのI/Oが多い → インデックス見直し
- TEMP表領域に集中 ⇒ ソート・ハッシュのSpillが多い → PGA増強
- UNDO表領域に集中 ⇒ 長いトランザクション or 大量DML
- REDO/Archiveに集中 ⇒ コミット頻度が高い or DML量が多い