2.20.1 HADBサーバが使用するメモリ
HADBサーバは,共有メモリとプロセスメモリを使用します。HADBサーバが使用する各メモリについて説明します。
- ■共有メモリ
-
共有メモリ内には,次に示すメモリが確保されます。
-
プロセス共通メモリ
プロセス共通メモリには,HADBサーバプロセスを起動,制御するために必要な情報が格納されます。
-
共有メモリ管理用のメモリ
共有メモリ管理用のメモリには,HADBサーバが使用する共有メモリの管理情報が格納されます。
-
グローバルバッファ用のメモリ
グローバルバッファ用のメモリには,次に示すバッファが格納されます。
・データベースの入出力処理で使用されるグローバルバッファ
・グローバル作業表の入出力処理で使用されるグローバル作業表用のグローバルバッファ
- メモ
-
グローバル作業表とは,1つのSQL文を複数の処理リアルスレッドで処理する際に,作業表のデータを複数の処理リアルスレッド間で共有するために作成される作業表のことです。
-
リアルスレッド固有メモリ
リアルスレッド固有メモリには,SQL文またはコマンドを処理する処理リアルスレッドが必要とする情報が格納されます。1つの処理リアルスレッドに対して,1つのリアルスレッド固有メモリが確保されます。HADBサーバプロセス内では,複数の処理リアルスレッドが実行され,リアルスレッド固有メモリには,処理リアルスレッドごとに必要な情報が格納されます。
-
- ■プロセスメモリ
-
プロセスメモリ内には,ヒープメモリが確保されます。HADBサーバは,コマンドの実行時にヒープメモリを使用します。
HADBサーバのメモリ構成を次の図に示します。
- [説明]
-
-
共有メモリ内には,複数のリアルスレッド固有メモリが確保されます。
-
1つのSQL文または1つのコマンドは,複数の処理リアルスレッドで処理されます。このとき,1つの処理リアルスレッドが,1つのリアルスレッド固有メモリを使用します。
-
SQL文およびコマンドの実行時に使用するリアルスレッド固有メモリ以外に,システムで使用するリアルスレッド固有メモリが確保されます。
-
リアルスレッド固有メモリ内に確保される領域とバッファについて説明します。
-
ハッシュグループ化領域
ハッシュグループ化領域には,ローカルハッシュグループ化で使用されるハッシュテーブルが格納されます。ローカルハッシュグループ化が適用されるSQL文を実行した場合,各リアルスレッド固有メモリにハッシュグループ化領域が確保されます。
-
ハッシュテーブル領域
ハッシュテーブル領域には,複数の処理リアルスレッド間で共有するハッシュテーブルが格納されます。次に示す処理が適用されるSQL文を実行した場合に,ハッシュテーブル領域が確保されます。
-
表の結合方式のハッシュジョイン
-
グループ化の処理方式のグローバルハッシュグループ化
-
副問合せの処理方式のハッシュ実行
-
SELECT DISTINCTの処理方式のハッシュ実行
-
集合演算の処理方式のハッシュ実行
-
-
ハッシュフィルタ領域
ハッシュフィルタ領域には,複数の処理リアルスレッド間で共有する,ハッシュ検索で使用するハッシュフィルタが格納されます。次に示す処理が適用されるSQL文を実行した場合に,ハッシュフィルタ領域が確保されます。
-
表の結合方式のハッシュジョイン
-
副問合せの処理方式のハッシュ実行
- メモ
-
ハッシュフィルタについては,マニュアルHADB AP開発ガイドの表の結合方式または副問合せの処理方式を参照してください。
-
-
ローカル作業表用バッファ
ローカル作業表用バッファとは,ローカル作業表の入出力処理で使用されるバッファのことです。ローカル作業表とは,処理リアルスレッドごとに作成される作業表のことです。ORDER BY句を指定した場合や,ローカルハッシュグループ化のグループ分けの場合に,ローカル作業表が作成されます。
- メモ
-
次の処理については,マニュアルHADB AP開発ガイドの該当個所を参照してください。
-
ローカルハッシュグループ化,グローバルハッシュグループ化:グループ化の処理方式
-
ハッシュジョイン:表の結合方式
-
副問合せの処理方式のハッシュ実行:副問合せの処理方式
-
SELECT DISTINCTの処理方式のハッシュ実行:SELECT DISTINCTの処理方式
-
集合演算の処理方式のハッシュ実行:集合演算の処理方式
-