この章では、Oracle Databaseにおけるメモリー割当て、およびメモリー管理の様々な方法について説明します。
この章のトピックは、次のとおりです:
データベース・メモリー・キャッシュと他のメモリー構造について
データベース・メモリーの管理方法
自動メモリー管理の使用
Oracle Databaseでは、メモリー・キャッシュおよびディスクに情報を格納します。メモリー・アクセスは、ディスク・アクセスよりはるかに高速です。ディスク・アクセス(物理I/O)は、メモリー・アクセスに比べ、時間がかかります(通常は約10ミリ秒)。また、物理I/Oでは、デバイス・ドライバやオペレーティング・システムのイベント・スケジューラのパス長のために必要なCPUリソースも増加します。このため、頻繁にアクセスされるオブジェクトに対するデータ・リクエストは、ディスク・アクセスではなくメモリー・アクセスで実行するほうが効率的です。Oracle Databaseメモリー・キャッシュを適切にサイズ設定して効率的に使用すると、データベースのパフォーマンスが大幅に向上します。
パフォーマンスに影響するOracle Databaseの主なメモリー・キャッシュは、次のとおりです。
データベース・バッファ・キャッシュ
データベース・バッファ・キャッシュには、ディスクから読み取られたデータ・ブロックが格納されます。
REDOログ・バッファ
REDOログ・バッファには、バッファ・キャッシュのデータ・ブロックに行われた変更のREDOエントリが格納されます。
共有プール
共有プールからは様々なタイプのデータがキャッシュされ、主に次のコンポーネントで構成されています。
ライブラリ・キャッシュ
データ・ディクショナリ・キャッシュ
サーバー結果キャッシュ
ラージ・プール
ラージ・プールでは、次のようなOracle Database機能に対して大量のメモリー割当てを行うことができます。
共有サーバー・アーキテクチャ
パラレル問合せ
Recovery Manager (RMAN)
Javaプール
Javaプールには、セッションに特化したJavaコードおよびJava Virtual Machine (JVM)データが格納されます。
Streamsプール
Streamsプールは、Oracle Advanced Queuing (AQ)およびレプリケーション・プロセスのためのメモリーを提供します。
プロセス・プライベート・メモリー
プロセス・プライベート・メモリーには、ソートやハッシュ結合などの操作に使用されるメモリーが含まれます。
インメモリー列ストア(IM列ストア)
Oracle Database 12cリリース1 (12.1.0.2)以降、IM列ストアは、表およびパーティションのコピーを格納するオプションの静的SGAプールです。IM列ストアでは、データは特殊な列形式に格納され、これによってスキャン、結合および集計などの操作のパフォーマンスが向上します。