Oracleデータベースのメモリアーキテクチャ(SGA、PGA)

Oracleの基礎

Oracleデータベースのメモリアーキテクチャについて基礎の部分のみを解説します。
具体的なメモリ割り当ての確認手順や設定手順の解説はありませんのでご了承ください。

Oracleデータベースのメモリ領域は、SGAとPGAの領域に大別できます。
それぞれについて説明をします。

SGA(システムグローバル領域)

SGAはインスタンスが管理するメモリ領域です。
SGAには大きく性能に影響するバッファキャッシュ、REDOログバッファなどが含まれます。

名前説明
バッファキャッシュデータベースのデータを保存し、DISK I/Oの量を減らし、メモリー上で処理を完了させ高速化するための目的で確保されるメモリー領域です。
REDOログバッファデータベースに対して行われた変更に関する情報が格納されます。
共有プール・SQL文、ディクショナリ・キャッシュ、結果キャッシュ等を保存します。
・クエリのパフォーマンスに影響する領域です。
(利用し終わっても、領域不足になるまでは解放されない。また、メモリー不足になってもディスクに退避されない。)
ラージプールバックアップ・リストア、並列処理、データベースリンクなどで利用される領域です。
小規模なシステムや、バックグラウンド処理が少ない場合は、無駄にラージプールを設定しないようにします。そうすることで、無駄にメモリを消費することを防げます。

PGA(プログラムグローバル領域)

PGAは、サーバ・プロセスが起動された際に確保されるメモリー領域で、ログインセッション情報の保持、SQLのソート処理、集計処理、表の結合処理などに使用されます。

PGAはスタック領域とセッション情報(SQLで使用されるソート領域などで使用)があります。


自動メモリ管理(AMM)

SGAやPGAの容量は、データ量やトランザクション(データの更新など)量などで決めますが、自動メモリ管理(AMM)を使用すると、メモリを自動的に管理できるようにする方法があります。
これを利用すると、SGAとPGAのバランスをOracleが最適化してくれます。

コメント

タイトルとURLをコピーしました