プログラムグローバル領域とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > プログラムグローバル領域の意味・解説 

システムグローバル領域

(プログラムグローバル領域 から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/05 05:58 UTC 版)

ナビゲーションに移動 検索に移動

システムグローバル領域 (: System Global Area, SGA) とは、データベースであるOracle Databaseに割り当てられる専用のメモリ領域である。その他に、プログラムグローバル領域 (: Program Global Area, PGA) についても説明する。

概要

ユーザの入力を処理する「サーバプロセス」のすべてが共有するメモリ領域である。SQLの処理で必要なデータを記録して各ユーザが共有する。Oracle Databaseのインスタンスは、システムグローバル領域とバックグラウンドプロセスで構成される。

システムグローバル領域のサイズが大きいほど、システムグローバル領域から利用できるデータが増加する。つまり、ハードディスクから読み込まなくても済むようになるので、Oracle Databaseの性能がよくなる。

メモリの構成

システムグローバル領域は最低でも3つのメモリ(バッファ)で構成される、Unix/Linux上から見ると共有メモリ上に配置される。

  • データベースバッファキャッシュ
  • REDOログバッファ
  • 共有プール

さらに、オプションとして3つのメモリ領域も含める。

  • ラージプール
  • Javaプール
  • Streamsプール

データベースバッファキャッシュと共有プール、ラージプール、Javaプール、Streamsプールは、Oracle9i以降インスタンスを停止しなくてもサイズを変更できる。サイズは「初期化パラメータファイル[1]」もしくはSPFILEに指定する

データベースバッファキャッシュ

データを再利用するために、頻繁にアクセスされるデータや新しいデータを記録するキャッシュである。古いデータは「データファイル[1]」に書き込む。

Oracle Databaseでは、このキャッシュでデータの処理を完了させてから、ハードディスクのデータファイルに書き込む。書き込むデータの順番はLRU(Least Recently Used)というアルゴリズムで決定する。チェックポイントが発行されるとバッファキャッシュの使用済みバッファの内容はデータファイルに書き込まれる。

バッファ

  • 使用済みバッファ
処理が完了したデータがあるバッファ。このバッファからデータファイルに書き込む。
  • 使用中バッファ
現在アクセスされているバッファ。
  • 使用可能バッファ
空のバッファ。

リスト

  • 書き込みリスト
使用済みバッファを記録する。
  • LRUリスト
書き込みリストに記録していない使用済みバッファや使用中バッファ、使用可能バッファを記録する。

REDOログバッファ

サーバプロセスがOracle Databaseを更新した履歴を記録するバッファである。時系列で記録する。そのため、別のトランザクションの更新履歴が挿入されることがある。

「LGWR[2]」は、コミットが実行されるとバッファのデータを「REDOログファイル[1]」に書き込む。そして、新しい更新履歴が古いREDOログバッファに書き込まれる。

共有プール

共有プールには2つのキャッシュがある。

  • ライブラリキャッシュ
  • データディクショナリキャッシュ(行キャッシュ)

ライブラリキャッシュ

よく利用するSQL文の情報をライブラリキャッシュに記録しておく。こうすることで、同じSQL文を再び実行するときにサーバプロセスがSQL文を解析しなくてすむ。

格納するSQL文の情報

  • SQL本文
ユーザが入力したSQLの文章。
  • 解析済みコード
コンピュータでも分かるようにSQL文を変換したソースコード
  • 実行計画
SQL文を実行するステップを定義したもの。

データディクショナリキャッシュ

Oracle Databaseについての情報である「データディクショナリ」のデータを記録している。の定義やユーザ名、パスワード、アクセス権限などを記録する。サーバプロセスはこのキャッシュからSQL文で指定したアクセス権限を検索する。この情報は必要に応じてSYSTEM表領域のデータファイルから読み込む。

オプションのメモリ領域

ラージプール

Oracle Databaseのバックアップとリストア(障害の回復)、入出力のサーバプロセスと共有サーバのセッション・メモリ用。

Javaプール

Java仮想マシン (JVM)のJavaコードとデータに利用する。

Streamsプール

Oracle Streamsに利用される。

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

1つのプロセスのデータと制御情報が記録されるメモリ領域である。プログラムグローバル領域はサーバプロセスを生成した時に割り当てられる。プロセスが終了したら割り当てが解除される。

記録する内容

  • スタック領域
セッション変数(ログイン情報)を記録する。
  • セッション情報
セッションへのユーザ権限についての情報を記録する。
  • ソート領域
データのソート処理に利用する。
  • カーソルの状態
セッションで利用しているカーソル処理の状態を記録する。

脚注

[脚注の使い方]

関連項目


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

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/05 05:58 UTC 版)

システムグローバル領域」の記事における「プログラムグローバル領域(PGA)」の解説

1つプロセスデータ制御情報記録されるメモリ領域である。プログラムグローバル領域はサーバプロセスを生成した時に割り当てられるプロセス終了した割り当て解除される

※この「プログラムグローバル領域(PGA)」の解説は、「システムグローバル領域」の解説の一部です。
「プログラムグローバル領域(PGA)」を含む「システムグローバル領域」の記事については、「システムグローバル領域」の概要を参照ください。

ウィキペディア小見出し辞書の「プログラムグローバル領域」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「プログラムグローバル領域」の関連用語

プログラムグローバル領域のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



プログラムグローバル領域のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのシステムグローバル領域 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaのシステムグローバル領域 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS