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