1. 見積りを怠るべからず
1.15. RDB コマンド実行時の作業用領域についての留意点
Symfoware Server べからず集
Symfoware Server べからず集
作業用領域の見積り
rdbsaloaderの-sオプションに指定する作業用領域の見積り
作業用領域 = Size1
Size1 : rdbsaloaderの対象の表DSIに属するインデックスDSIのソート作業域の最 大サイズ
上記のSize1の算出に使用する、インデックスDSIのソート作業域のサイズ見積りは、
以下のとおりです。
インデックス DSI のソート作業域サイズ = (インデックスを構成する列の合計長 ×
2 + 26) × (入力ファイル中のレコード件数 + 表の DSI に格納済みのレコード件
数)
[注意]
- インデックスを構成する列のデータ型が CHARACTER(VARYING 含む)または NATIONAL CHARACTER(VARYING含む)の場合、その列の長さを1.5倍にして合計長 を計算します
- 本見積り式は、インデックスが BTREE 構造の場合です。XML 構造の場合は、
"Symfoware Server セットアップガイド"の"作業域の見積り"を参照してくださ い
Symfoware Server べからず集
rdbsloaderの-sオプションに指定する作業用領域の見積り
・-iオプションを指定し、かつ-hオプションを指定しない場合 作業用領域 = max(Size1 , Size2)
Size1 : rdbsloaderの対象の表DSIのソート作業域のサイズ
Size2 : 上記の表DSIに属するインデックスDSIのソート作業域の最大サイズ
・-iオプションを指定し、かつ-hオプションを指定した場合 作業用領域 = Size3 + Size4
Size3 : rdbsloaderの対象の表DSIのソート作業域のサイズ
Size4 : 上記の表DSIに属するインデックスDSIのソート作業域の合計サイズ
・-vオプションを指定し、かつ-hオプションを指定しない場合 作業用領域 = max(Size5 , Size6)
Size5 : rdbsloaderの対象のすべての表DSIのソート作業域の合計サイズ
Size6 : 上記のすべての表DSIに属するインデックスDSIのソート作業域の最大サイズを合
計したサイズ
・-vオプションを指定し、かつ-hオプションを指定した場合 作業用領域 = Size7 + Size8
Size7 : rdbsloaderの対象の表DSIのソート作業域の合計サイズ
Size8 : 上記のすべての表DSIに属するインデックスDSIのソート作業域の合計サイズ
上記のSize1、Size3、Size5またはSize7の算出に使用する、表DSIのソート作業域サイズの見 積りは、以下のとおりです。
・SEQUENTIALかつ-kオプション指定なしの場合 ソート作業域サイズ = 0
・SEQUENTIALかつ-kオプション指定ありの場合
ソート作業域サイズ = (Size9 + 28 + Size10 × 2) × 入力ファイル中のレコード件数 + Size11 ÷ 32 ÷ 1024 × 16
Size9 : 表を構成する列の長さの合計長
Size10 : PRIMARY KEYに対応するインデックスを構成する列の合計長 Size11 : 入力ファイルのサイズ
・ RANDOMの場合
ソート作業域サイズ = (Size12 + 36 + Size13 × 2) × 入力ファイル中のレコード件数
+ Size14 ÷ 32 ÷ 1024 × 16 Size12 : 表を構成する列の合計長
Size13 : クラスタキーを構成する列の合計長 Size14 : 入力ファイルのサイズ
・OBJECTの場合
Symfoware Server べからず集
rdbsuloaderの-sオプションに指定する作業用領域の見積り
・-hオプションを指定しない場合 作業用領域サイズ = Size1
Size1 : rdbsuloaderの対象の表DSIに属するインデックスDSIのソート作業域の最大サイズ
・-hオプションを指定する場合 作業用領域サイズ = Size2
Size2 : rdbsuloaderの対象の表DSIに属するインデックスDSIのソート作業域の合計サイズ
上記のSize1およびSize2の算出に使用する、インデックスDSIのソート作業域サイズの見積り
は、以下のとおりです。
インデックスDSIのソート作業域サイズ = (Size3 × 2 + 26) × 入力ファイル内のレコー ド件数
Size3 : インデックスを構成する列の合計長 [注意]
上記のうちSize3において、インデックスを構成する列のデータ型がCHARACTER(VARYING含む) またはNATIONAL CHARACTER(VARYING含む)の場合、その列の長さを1.5倍にします。
上記のSize2、Size4、Size6またはSize8の算出に使用する、インデックスDSIのソート作業域 サイズの見積りは、以下のとおりです。
・表のDSIがSEQUENTIALまたはOBJECTの場合
ソート作業域サイズ = (Size15 × 2 + 14) × 入力ファイル中のレコード件数 Size15 : インデックスを構成する列の合計長
・表のDSIがRANDOMであり、かつインデックスの構成列が一意性制約に対応する場合
ソート作業域サイズ = (Size16 × 2 + Size17) ×入力ファイル中の レコード件数 Size16 : インデックスを構成する列の合計長
Size17 : クラスタキーを構成する列の合計長
・表のDSIがRANDOMであり、かつインデックスの構成列が一意性制約に対応しない場合
ソート作業域サイズ = (Size18 × 2 + Size19 × 2) × 入力ファイル中のレコード件数 Size18 : インデックスを構成する列の合計長
Size19 : クラスタキーを構成する列の合計長
[注意]
上記のうち Size15、Size16 および Size18 において、インデックスを構成する列のデータ型が CHARACTER(VARYING含む)またはNATIONAL CHARACTER(VARYING含む)の場合、その列の長さは1.5 倍にして合計長を計算します。
Symfoware Server べからず集
rdbsuloaderの-wオプションに指定する作業用領域の見積り
rdbupsの-sオプションに指定する作業用領域の見積り
[備考]
以下の場合、作業用領域は使用しません。
・ -cオプションを指定した場合
・-iオプションにインデックスDSI名を指定した場合
作業用領域サイズ = 指定したインデックスDSIのソート作業域サイズ
・-gオプションにインデックスDSO名を指定した場合
作業用領域サイズ = 指定したインデックスDSO配下のすべてのインデックスDSIのソート作
業域の最大サイズ
・-tオプションに指定した表にインデックスが1つ以上ある場合
作業用領域サイズ = 指定した表配下のすべてのインデックス DSI のソート作業域の最大サイ
ズ
上記のインデックスDSIのソート作業域サイズの見積りは、以下のとおりです。
インデックスDSIのソート作業域サイズ = (Size1 * 2) * 入力ファイル内のレコード件数 Size1 : インデックスを構成する列の合計長
[注意]
イ ン デ ッ ク ス を 構 成 す る 列 の デ ー タ 型 が CHARACTER(VARYING 含 む)ま た は NATIONAL CHARACTER(VARYING含む)の場合、その列の長さを1.5倍にします。
作業用領域 = Size1 + Size2
Size1 : -wfオプション指定時に使用するソート作業域サイズ
Size2 : -wdオプション指定時に使用するソート作業域サイズ
上記のSize1の算出に使用する、ソート作業域サイズの見積りは、以下のとおりです。
ソート作業域サイズ = (Size3 * 2 + 16 + Size4) * 入力レコード件数 Size3 : -mオプションで指定した列の合計長
Size4 : 表を構成する列の合計長
上記のSize2の算出に使用する、ソート作業域サイズの見積りは、以下のとおりです。
ソート作業域サイズ = (Size5 * 2 + 16 + Size6) * DSI内レコード件数 Size5 : -mオプションで指定した列の合計長
Size6 : 表を構成する列の合計長
Symfoware Server べからず集
・ -tオプションに指定した表にインデックスが1つもない場合
【補足】
RDBコマンド実行中は作業用ディレクトリ配下に"SYMFORDBCxxxxx"ファイルが作成さ
れます。(xxxxxは、Symfowareがランダムに割り当てる半角英数字)
データ量およびキー列の内容によって作成個数は変わります。このファイルは、RDB コマ ンド終了時に削除されるため、利用者は削除しないでください。
1.15.2. 未対処時の影響 (1) 現象分類
機能の異常/処理結果異常 (2) 現象/原因
【現象】
以下のRDB コマンドを実行すると、「qdg03023u 作業用ディレクトリ'xxx'の容量 が不足しています。」のメッセージを出力してRDBコマンドの実行が失敗します。
・ rdbsaloaderコマンド
・ rdbsloaderコマンド
・ rdbsuloaderコマンド
・ rdbupsコマンド
また、Solaris/Linuxでは、上記のRDBコマンドを実行時に作業用領域を指定して
いない場合、OSのメモリ不足によりRDBコマンドの実行が失敗することがありま す。
【原因】
RDBコマンド実行中に必要な作業用領域が不足したためです。
1.15.3. 備考
Symfoware Server セットアップガイド I.9 作業域の見積り
Symfoware Server べからず集