Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


3.4.3 プロセス固有メモリの見積もり

マニュアル「HiRDB システム導入・設計ガイド」の「メモリ所要量の計算式」を参照して,「HiRDB/パラレルサーバの各ユニットが使用するメモリ所要量」のうち,「各サーバプロセスが使用するプロセス固有領域」に,次の表に示す計算式から算出した値を加算してください。

表3‒19 各サーバプロセスが使用するプロセス固有領域のメモリ所要量

サーバプロセス

メモリ所要量

(単位:キロバイト)

変数の説明

フロントエンドサーバ

psdc

+bpsts

+fdml

+con

psdc

1

bpsts

0.1

fdml

3.4.3(1) SDBデータベースを操作するAPIまたはDMLの実行時に,フロントエンドサーバで確保するメモリ」を参照して,トランザクションごとのメモリ所要量を算出してください。

算出した結果から,最大値を代入してください。

con

3.4.3(3) HiRDBサーバへの接続(CONNECT)時に確保するメモリ【SD FMB】」を参照して,メモリ所要量を算出してください。

算出した結果から,最大値を代入してください。

バックエンドサーバ

psdc

+psda

+bpsts

+bdml

+↑(4×MAX(mxra÷2,1,024)+8×mxra)÷1,024↑

psda

101

bdml

3.4.3(2) SDBデータベースを操作するAPIまたはDMLの実行時に,バックエンドサーバで確保するメモリ」を参照して,トランザクションごとのメモリ所要量を算出してください。

算出した結果から,最大値を代入してください。

mxra

pd_max_rdarea_noの値を代入してください。

上記以外の変数

フロントエンドサーバの変数の説明を参照してください。

ディクショナリサーバ

0

(凡例)

−:該当しません。

〈この項の構成〉

(1) SDBデータベースを操作するAPIまたはDMLの実行時に,フロントエンドサーバで確保するメモリ

SDBデータベースを操作するAPIまたはDMLの実行時に,フロントエンドサーバで確保するメモリを次の計算式で求めます。

SDI+308+0.3×個別開始要求回数 (単位:キロバイト)
注※

トラブルシュート機能(UAP統計レポートにアクセスパス情報の出力指定)適用時に加算します。

(a) 変数SDIの求め方

■4V FMBまたは4V AFMのSDBデータベースの場合

変数SDIは次の計算式で求めます。

[図データ]

変数の説明

  • lkey:操作対象のルートレコード型に定義されたシーケンシャルインデクスのキー長(バイト)

  • a:個別開始要求回数

  • maxrs(i):個別開始対象SDBデータベースの最大レコード長(バイト)

    ただし,個別開始の複数レコードの検索専用オプションで'D'または'S'を指定した場合は0

  • sdidout(i):個別開始の複数レコードの検索専用オプションで'D'または'S'を指定した場合は,複数レコードの検索時に指定したデータ格納エリア長(バイト)

    'D'または'S'を指定していない場合は0

  • maxukey(i):個別開始対象SDBデータベースのSDBデータベース定義RECORD句でTYPE U,Kを指定した構成要素の最大構成要素長(バイト)

    TYPE U,Kを指定した構成要素がない場合は0

  • sdimlutr:4V FMBのSDBデータベースの場合は,1回のAPIでまとめて操作要求するレコード型数(ただし,個別開始の複数レコードの検索専用オプションで'D'または'S'を指定した場合は1)

    4V AFMのSDBデータベースの場合は1

  • fvrcpc:4V FMBのSDBデータベースの場合は0,4V AFMのSDBデータベースの場合は1回の容量情報取得要求で要求するキー数の最大値

  • bes:個別開始対象のSDBデータベースのSDBデータベース格納定義で指定したRDエリアが配置されるBES数(重複を排除して計算する)

  • divkey:個別開始対象SDBデータベースのSDBデータベース格納定義STORAGE RECORD句下のWITHIN句で指定したRDエリア分割キー値数(ただし,境界値分割の場合は,RDエリア分割キー値数+1)

  • aududmax:各SDBデータベースに定義されているレコード型に含まれるユーザデータの長さの最大値(バイト)

  • audrmax:各SDBデータべースに定義されているレコード型数の最大値

  • audrsmax:各SDBデータベースのレコード長の総和の最大値(バイト)

■SD FMBのSDBデータベースの場合

変数SDIは次の計算式で求めます。

[図データ]

変数の説明

  • lkey:操作対象のルートレコード型に定義されたシーケンシャルインデクスのキー長(バイト)

  • a:操作対象のSDBデータベース数

  • maxrs(i):操作対象のSDBデータベースの最大レコード長(バイト)

  • bes:操作対象のSDBデータベースのSDBデータベース格納定義で指定したRDエリアが配置されるBES数(重複を排除して計算する)

  • divkey:操作対象のSDBデータベースのSDBデータベース格納定義のSTORAGE RECORD句下のWITHIN句で指定したRDエリア分割キー値数(ただし,境界値分割の場合は,RDエリア分割キー値数+1)

  • aududmax:各SDBデータベースに定義されているレコード型に含まれるユーザデータの長さの最大値(バイト)

  • audrmax:各SDBデータべースに定義されているレコード型数の最大値

  • audrsmax:各SDBデータベースのレコード長の総和の最大値(バイト)

(2) SDBデータベースを操作するAPIまたはDMLの実行時に,バックエンドサーバで確保するメモリ

SDBデータベースを操作するAPIまたはDMLの実行時に,バックエンドサーバで確保するメモリは次の計算式で求めます。

SDI+SDP+SDA+0.3×個別開始要求回数 (単位:キロバイト)

(a) 変数SDIの求め方

■4V FMBまたは4V AFMのSDBデータベースの場合

変数SDIは次の計算式で求めます。

[図データ]

変数の説明

  • lkey:操作対象のルートレコードに定義されたシーケンシャルインデクスのキー長(バイト)

  • appbdt:256

    トラブルシュート機能(UAP統計レポートにアクセスパス情報の出力指定)適用時に加算します。

  • roglog:更新可能なオンライン再編成中のSDBデータベースを更新アクセスする場合は31.6(アクセスしない場合は0)

  • a:個別開始要求回数

  • r(i):個別開始対象SDBデータベースのレコード型数

    ただし,個別開始の複数レコードの検索専用オプションで'D'または'S'を指定した場合は1

  • set(i):個別開始対象SDBデータベースの親子集合数

  • elmct:4V FMBのSDBデータベースの場合は0

    4V AFMのSDBデータベースの場合は,レコード型ごとにデータ種別1がUの構成要素数をカウントしたときの最大数

  • divkey:個別開始対象のSDBデータベースの,SDBデータベース格納定義のSTORAGE RECORD句のWITHIN句で指定した分割キー値数

    ただし,境界値分割の場合は,分割キー値数+1

  • nxtuksv:4V MAMのSDBデータベースの場合は0.3

    4V MAMのSDBデータベース以外の場合は0

  • maxrs(i):個別開始対象SDBデータベースの最大レコード長(バイト)

    ただし,個別開始の複数レコードの検索専用オプションで'D'または'S'を指定した場合は0

  • rsize(i):個別開始対象SDBデータベースのレコード型ごとのレコード長の総和(バイト)

    ただし,個別開始の複数レコードの検索専用オプションで'D'または'S'を指定した場合は,108+個別開始の対象となるSDBデータベースのルートレコードのレコード長(バイト)

  • sdidout(i):個別開始の複数レコードの検索専用オプションで'D'または'S'を指定した場合は,複数レコードの検索時に指定したデータ格納エリア長(バイト)

    'D'または'S'を指定していない場合は0

  • maxukey(i):個別開始対象のSDBデータベースのSDBデータベース定義のRECORD句でTYPE U,Kを指定した構成要素の最大構成要素長(バイト)

    TYPE U,Kを指定した構成要素がない場合は0

  • sdimlutr:4V FMBのSDBデータベースの場合は,1回のAPIでまとめて操作要求するレコード型数(ただし,個別開始の複数レコードの検索専用オプションで'D'または'S'を指定した場合は1)

    4V AFMのSDBデータベースの場合は1

  • audrmax:各SDBデータべースに定義されているレコード型数の最大値

  • audrsmax:各SDBデータベースのレコード長の総和の最大値(バイト)

■SD FMBのSDBデータベースの場合

変数SDIは次の計算式で求めます。

[図データ]

変数の説明

  • lkey:操作対象のルートレコードに定義されたシーケンシャルインデクスのキー長(バイト)

  • appbdt:256

    トラブルシュート機能(UAP統計レポートにアクセスパス情報の出力指定)適用時に加算します。

  • a:操作対象のSDBデータベース数

  • r(i):操作対象のSDBデータベースのレコード型数

  • set(i):操作対象のSDBデータベースの親子集合数

  • divkey:操作対象のSDBデータベースの,SDBデータベース格納定義のSTORAGE RECORD句のWITHIN句で指定した分割キー値数

    ただし,境界値分割の場合は,分割キー値数+1

  • maxrs(i):操作対象のSDBデータベースの最大レコード長(バイト)

  • rsize(i):操作対象のSDBデータベースのレコード型ごとのレコード長の総和(バイト)

  • audrmax:各SDBデータべースに定義されているレコード型数の最大値

  • audrsmax:各SDBデータベースのレコード長の総和の最大値(バイト)

(b) 変数SDPの求め方

変数SDPは次の計算式で求めます。

SDP個別開始時算出式+SDP_API算出式+API全般 (単位:キロバイト)
  • SDP個別開始時算出式:個別開始時に必要な領域の領域長

  • SDP_API算出式:SDBデータベースを操作するAPIまたはDMLごとに必要な領域の領域長

  • API全般:SDBデータベースを操作するAPIまたはDMLで,共通に必要な領域の領域長

注※

トラブルシュート機能(UAP統計レポートにアクセスパス情報の出力指定)適用時に加算します。

SDP個別開始時算出式:

[図データ]

変数の説明
  • a:個別開始実行回数

  • recvn(i):SDBデータベースに定義したレコード型数

  • setvn(i):SDBデータベースに定義した親子集合数

  • sdbid(i):SDBデータベースの基SDBデータベース番号

  • idxid(i):インデクス定義総数−1

  • maxrl(i):31

SDP_API算出式:

[図データ]

変数の説明
  • a:個別開始実行回数

  • API共通算出式(i):複数のSDBデータベースを操作するAPIまたはDML間で共通に利用する領域の領域長

    個別開始したSDBデータベースについて算出します。

  • API個別算出式(i):SDBデータベースを操作するAPIまたはDMLの種別ごとに確保する領域長

    個別開始したSDBデータベースについて算出します。

API共通算出式(i):

個別開始から個別終了の間で実行する要求を対象に求めます。

{0.001×lkey+MAX1※1+MAX2※1+MAX3+MAX4+MAX5+0.55※2}×1.1
                                              (単位:キロバイト)
注※1

個別開始後の初回のレコードの検索,位置指示子の位置づけ,複数レコードの検索,またはレコードの格納時に確保します。以後のレコードの検索,位置指示子の位置づけ,複数レコードの検索,またはレコードの格納時に領域長が不足した場合は,領域を解放して再取得します。個別終了で領域を解放します。

注※2

個別開始後の初回APIまたはDMLの実行時に確保し,個別終了で領域を解放します。

変数の説明
  • lkey:操作対象のルートレコードに定義されたシーケンシャルインデクスのキー長(バイト)

  • MAX1:0.55+0.1×ccnd+0.1×faltn+0.1×cndn

    個別開始から個別終了の間に発行する要求に対して上記の計算を行い,最も大きい値をMAX1としてください。

     ccnd:共通条件(キーの条件)数

     faltn:択一条件数

     cndn:連結条件数

  • MAX2:5.03+(0.248+96×nidx)×(dbkcnd+2)

    個別開始から個別終了の間に発行する要求に対して上記の計算を行い,最も大きい値をMAX2としてください。

     nidx:インデクスの構成列数

     dbkcnd:シーケンシャルインデクスのキーに対する条件の数

  • MAX3:(0.02+0.002×nrec)×2

    個別開始から個別終了の間に発行する要求に対して上記の計算を行い,最も大きい値をMAX3としてください。

     nrec:操作対象のSDBデータベースを構成するレコード型数

  • MAX4:0.15×nset

    個別開始から個別終了の間に発行する要求に対して上記の計算を行い,最も大きい値をMAX4としてください。

     nset:操作対象のレコードが子レコードとして関与する親子集合型数

  • MAX5:0.4+(0.1×ncmp)

    個別開始から個別終了の間に発行する要求に対して上記の計算を行い,最も大きい値をMAX5としてください。

     ncmp:SDBデータベース定義のKEY句に指定した構成要素型数

API個別算出式(i):
0.83
API全般:
546 (単位:キロバイト)

(c) 変数SDAの求め方

変数SDAは次の計算式で求めます。

[図データ]

SD FMBのSDBデータベースの場合,計算式Bの値は0になります。

変数の説明
  • xpgsz:インデクスを格納しているRDエリアの中で最大のページ長(バイト)

  • a:複数レコードの検索専用オプションで'D'または'S'を指定した個別開始要求回数

  • r(i):個別開始対象データベースのレコード型数

参考

計算式Bは,バックエンドサーバ用の簡易ダンプファイルの容量計算式(FETCHDB ALL用ワークエリアサイズの計算式)として使用します。バックエンドサーバ用の簡易ダンプファイルの容量計算式については,「付録F.1 簡易ダンプ」を参照してください。

(3) HiRDBサーバへの接続(CONNECT)時に確保するメモリ【SD FMB】

HiRDBサーバへの接続(CONNECT)時に確保するメモリは次の計算式で求めます。

SDA×1.1 (単位:キロバイト)

SD FMBのSDBデータベースにSDB用UAP環境定義を使用してアクセスする場合に,上記の計算をしてください。SDB用UAP環境定義を使用しない場合は,変数SDAは0になります。

(a) 変数SDAの求め方

変数SDAは次の計算式で求めます。

oper+↑(subn×(0.2+0.04×rda)×1.34)÷36↑×36+subn×(0.2+0.04×rda)+163 (単位:キロバイト)
変数の説明
  • oper:SDB用UAP環境定義で,1オペランドの継続行数が100行を超えるオペランドがない場合は8,100行を超えるオペランドがある場合は160

  • subn:SDB用UAP環境定義のsubschemaオペランドの指定数

  • rda:SDB用UAP環境定義のsubschemaオペランドに指定する,RDエリア名の指定数の最大値