Hitachi

HiRDB XML拡張機能 HiRDB XML Extension Version 10


2.3.1 メモリ所要量

XML Extensionのメモリ所要量の見積もり方法について説明します。

〈この項の構成〉

(1) XMLデータ型プラグインとIXXMLインデクス型プラグインの場合

(a) データ操作(XMLデータ登録/更新)

単一XMLデータ登録時

  • 遅延更新機能またはインデクス未定義の場合

    使用メモリ[メガバイト]= max ( besprocess,xmlpsize )

  • インデクス作成の場合

    使用メモリ[メガバイト]= max ( min(config指定メモリ×10-3 , docsize×5×10-6 ) , besprocess )

    • besprocess = docsize×7.5×10-6

    • xmlpsize:XMLPARSE関数を使用して登録する場合

      xmlpsize= 10+ ( docsize×10+(element+attrcnt)×500)×10-6

    • xmlpsize:XMLPARSE関数を使用しない場合

      xmlpsize=0

    • elementcnt:XMLデータ中の要素数合計値

    • attrcnt:XMLデータ中の属性数合計値

    • config指定メモリ:IXXMLインデクス型プラグインの環境設定項目「1件登録時最大メモリ」の設定値[キロバイト]

    • besprocess:BESまたはSDSでの使用メモリ[メガバイト]

    • docsize:XMLデータサイズ[バイト]

複数XMLデータ一括登録

  • 差分インデクス統合,CREATE INDEX,遅延更新時のインデクス作成の場合

    使用メモリ[メガバイト]= min ( config指定メモリ×10-3 , docsize×doccnt×6×10-6 )

  • pdloadの場合

    使用メモリ[メガバイト]= max ( docsize×6×XML型定義列数×10-6 , min ( config指定メモリ×10-3 , docsize×doccnt×6×10-6 ) , xmlpsize )

    • docsize:平均登録XMLデータサイズ[バイト]

    • doccnt:登録XMLデータ数

    • config指定メモリ:IXXMLインデクス型プラグインの環境設定項目「一括登録時最大メモリ」の設定値[キロバイト]

    • xmlpsize:XMLPARSE関数を使用して登録する場合

      xmlpsize= 10+ (singledocsize×10+(element+attrcnt)×500)×10-6

      登録XMLデータ中で単独のXMLデータが上記計算式で最大になる値を採用してください。

    • xmlpsize:XMLPARSE関数を使用しない場合

      xmlpsize=0

    • elementcnt:単独のXMLデータ中の要素数合計値

    • attrcnt:単独のXMLデータ中の属性数合計値

    • singledocsize:単独のXMLデータサイズ[バイト]

(b) データ操作(XMLデータ削除)

使用メモリ[キロバイト]= 24

(c) データ操作(インデクス詰め替えユティリティ)

使用メモリ[メガバイト]= 10

(d) 検索

  • XMLEXISTS関数でIXXMLインデクスを使った検索を実行した場合

    1回のXMLデータ検索での使用メモリ[メガバイト]= min ( config指定メモリ×10-3 , ヒット件数×検索ターム数×↑検索ターム平均長/2↑×20×10-6 )+ヒット件数×12×10-6+3

  • 1SQLで複数のXMLEXISTS関数を指定した場合

    検索時のメモリ所要量の最大値=1回の検索使用メモリ×1SQL文中に記述したプラグイン関数の個数

(e) 1RDエリア当たりの排他制御用共用メモリ

登録・検索同時実行を実行する場合,BESまたはシングルサーバ内のIXXML型用のRDエリア単位に,次のサイズの排他制御用共用メモリが必要です。この領域は,IXXML型用の共用メモリ中に確保されます。

使用メモリ[キロバイト]= max ( ( user_cnt×lock_obj_size×10 ) ×10-3,8 )
  • user_cnt:HiRDBシステムで同時に実行できるユーザ数の最大数(HiRDB環境定義pd_max_users指定値)

  • lock_obj_size:1排他オブジェクト当たりのサイズ[バイト]

UNIXの場合

64ビット版XML Extensionの場合:48バイト

64ビット版以外のXML Extensionの場合:32バイト

Windowsの場合

32バイト固定

(f) 共用メモリ

登録・検索同時実行を実行する場合,BESまたはシングルサーバ単位に,次のサイズの共用メモリが必要です。

使用メモリ[キロバイト]= max ( ( rd_serve×8192×↓lock_size/8↓ ) /1024+↑( 32+16×rd_serve ) /8192↑×8,16 )

  • rd_serve:1サーバ内のIXXML型用RDエリア数

  • lock_size:IXXMLインデクス型プラグインの環境設定項目「1RDエリア当たりの排他制御用共用メモリサイズ」の設定値[キロバイト]

(g) 検索時最大ワークメモリサイズ

検索高速化インデクス(V2)機能を使用する場合

検索高速化インデクス(V2)機能を使用する場合の,検索時最大ワークメモリサイズ(phj_mem_search)に指定するメモリ使用量の目安(最低限必要な値)を次に示します。

使用メモリ[キロバイト] = (ターム数×2)×64+( NOT検索指定数×登録データ件数/8)/1024

注※ (ターム数×2)の最大値は200です。

メモリ使用量は検索条件によって異なります。検索時最大ワークメモリサイズの指定値が大きいほど,検索性能が向上します。そのため,ここで示した値より大きな値を検索時最大ワークメモリサイズに指定することをお勧めします。