19.1.2 データベース再編成ユティリティ(pdrorg)実行時のファイルの容量
データベース再編成ユティリティ(pdrorg)で使用するファイルの容量の計算式を次に示します。
ファイルの種類 |
容量の計算式(単位:バイト) |
---|---|
アンロードデータファイル (オプション指定なし) |
n Σ(Pi +M)+Li※6+1200+A+B+c×96+D+I+F i=1 |
アンロードデータファイル (-Wオプション指定時) |
DAT形式,又は拡張DAT形式の場合 { c Σ(列の最大文字変換長i ※1+1)×C+M i=1 }×n バイナリ形式でFIX表の場合 { c Σ(列データ長i ※2)+M i=1 }×n バイナリ形式で非FIX表の場合 { c Σ(列データ長i ※2+G)+M+4×(c+1) i=1 }×n 固定長文字形式の場合 { c Σ(列の最大文字変換長i ※3+crlf)×C+M i=1 }×n |
アンロードデータファイル (-jオプション指定時又はスキーマ単位の再編成時)※4 |
n Σ(Pi +M)+Li※6+ i=1 n Σ{ i=1 m Σ(Oij+44) j=1 }+1200+A+B+c×96+D+I+F |
LOBデータのアンロードデータファイル |
n Σ{ i=1 m Σ(Oij+44) j=1 }+1200+A+B+c×96+D+I+F |
インデクス情報ファイル |
B-treeインデクスの場合 (K+p)×n+512 プラグインインデクスの場合 (12+X)×n+1024 この計算式は,1インデクス当たりの容量計算式です。インデクスが複数ある場合は,それぞれのインデクスに対して計算してください。 |
処理結果ファイル |
1700+表格納サーバ数×500+スキーマ内表数×1000+スキーマ内総格納RDエリア数×100 |
ワークファイル※5 |
[8+2×S+2×{n÷(-mオプションに指定した経過メッセージ出力間隔の値)}+3×R+4×J×R]×200 |
ソート用ワークファイル |
条件1の場合 インデクス情報ファイルの容量+4×n 条件2の場合 {インデクス情報ファイルの容量+4×n}×2
|
- A:キーレンジ分割の場合:48+分割条件数×284
-
ハッシュ分割の場合:40+a×60
マトリクス分割(境界値指定のキーレンジ分割とハッシュ分割の組み合わせ)の場合:
48+(分割条件数×284)+(40+a×60)
B:n×36(FIX表の場合)又は(44+c×4)×n(非FIX表の場合)
- C:アンロードデータファイルの出力文字コードがHiRDBの既定文字コード以外の場合:2
-
上記以外の場合:1
- D:16+(LOB列数×a×80)
-
DはLOB列がある場合に加算します。
- F:次の値を代入してください。
d Σ{(列iのプラグインが提供する抽象データ型の属性数×84)+ i=1 (列iのプラグインが提供する抽象データ型のLOB属性数×a×72)} +64+ d Σ(84+逆生成関数数i×60) i=1
G:列Iに対する逆生成関数の返却値がBLOBの属性数×4
- I:136+インデクス分割数×60
-
インデクス引き上げ時に加算します。
J:インデクス数
- K:インデクスのキー長
-
表「インデクスのキー長一覧」を参照してください。ただし,可変長データの場合は単一列でも複数列として扱い,定義長の最大値で計算してください。
- Li:行の実長
-
行の実長は,概算値又は詳細値で見積もってください。なお,BINARY型で圧縮指定ありの場合は,詳細値で見積もると計算が複雑になるため,概算値で見積もることをお勧めします。
- 概算値の見積もり:
-
データベースに格納されているデータから,次の計算式で行の実長の全行の合計概算値(単位:バイト)を求めます。
表格納RDエリアの使用中ページ数×表格納RDエリアのページ長
表格納RDエリアの使用中ページ数,及びページ長については,pddbstのRDエリア単位の状態解析(論理的解析),又は表単位の状態解析の実行結果から取得できます。
- 詳細値の見積もり:
-
各列のデータから,次の値を使用して行の実長を求めます。
列のデータ型
実長(単位:バイト)
BLOB
16
プラグインが提供する抽象データ型
2
BINARY※
-
pdrorg -k rorgで圧縮指定あり,かつUOCを使用しない場合
定義長+8×MAX(
SQLのUPDATE文で連結演算を使用した回数,
↑定義長÷圧縮分割サイズ↑)
-
上記以外の場合
BINARY型の列の定義長
上記以外
各列の実長
-
- 注※
-
行の実長の最大値を算出するため,BINARY型のデータが定義長のデータで,圧縮率が0%と仮定しています。
- M:文字集合が指定された文字列型の列の合計データ長
-
次の値になります。
k (Σ列データ長i) i=1
Oij:LOBデータ長
Pi:プラグインが提供する抽象データ型のデータ長
R:表又はインデクスの分割RDエリア数
S:表格納サーバ数
- X:次に示す値
-
-
LOB用RDエリアに格納された抽象データ型の場合は27
-
定義長255バイト以下の抽象データ型の場合は(キー長+2)
-
定義長256バイト以上の抽象データ型の場合は2
代表的な抽象データ型の値を次に示します。
-
SGMLTEXT型の場合は27
-
FREEWORD,GEOMETRY,及びXML型の場合は2
-
a:分割RDエリア数
c:列定義数
d:プラグインが提供する抽象データ型が定義された列数
k:文字集合が指定された文字列型の列の数
m:LOB列数
n:行数(繰返し列の場合は行数×要素数)
p:キー構成列がすべて固定長の場合は10,キー構成列に可変長を含む場合は12
- crlf:-Wオプションにcr又はcrlfを指定した場合に加算する改行文字の長さ
-
次の表から改行文字の長さを求めます。
-Wオプション指定値
加算値
-W dat又は-W extdat
,cr
1
,crlf
2
上記の指定なし
1
-W fixtext
,cr
1
,crlf
2
上記の指定なし
0
- 注
-
インデクス情報ファイル及びソート用ワークファイルの容量を算出するとき,インデクス構成列が繰返し列の場合は「リロードする行数」及びnは行数ではなく,行数×要素数となります。
- 注※1
-
DAT形式(-W dat)又は拡張DAT形式(-W extdat)の場合の列の最大文字変換長を次の表に示します。
表19‒1 列の最大文字変換長(DAT形式又は拡張DAT形式の場合) データ型
最大文字変換長(バイト)
数データ
INTEGER
11
SMALLINT
11
DECIMAL
40
FLOAT
23
SMALLFLT
23
文字データ※1
CHARACTER
定義長+2※2
VARCHAR
実長+2※2
混在文字データ※1
MCHAR
定義長+2※2
MVARCHAR
実長+2※2
各国文字データ※1
NCHAR
定義長×2+2※2
NVARCHAR
実長+2※2
日付データ
DATE
10
時刻
TIME
8
日間隔データ
INTERVAL YEAR TO DAY
9
時間隔データ
INTERVAL HOUR TO SECOND
7
時刻印データ
TIMESTAMP
19
小数秒けた数が0でなければ,小数秒けた数+1を加算してください。
バイナリデータ※1
BINARY
実長+2※2
- 注※1
-
拡張DAT形式の場合,データ中に「”」があると,「”」の数分,文字変換長が長くなります。
- 注※2
-
データの長さに囲み文字数を2バイト加算しています。
ただし,-W dat又は-W extdat指定時,オペランドにsupを指定した場合の列の最大文字変換長は次に示すとおりです。なお,表中の実長とは,後方の連続スペースを圧縮した残りの長さです。スペースを圧縮した場合の出力形式については,マニュアル「HiRDB Version 9 コマンドリファレンス」のデータベース再編成ユティリティ(pdrorg)の-Wオプションの説明を参照してください。
データ型
最大文字変換長(バイト)
文字データ
CHARACTER
実長+2
混在文字データ
MCHAR
実長+2
各国文字データ
NCHAR
実長+2
- 注※2
-
データ長については次を参照してください。
- 注※3
-
固定長文字形式(-W fixtext)の場合の列の最大文字変換長を次の表に示します。
表19‒2 列の最大文字変換長(固定長文字形式の場合) データ型
最大文字変換長(バイト)
数データ
INTEGER
11
SMALLINT
6
DECIMAL
けた数+2
FLOAT
23
SMALLFLT
23
文字データ
CHARACTER
VARCHAR
定義長
fixtext_optionにencloseオペランドを指定した場合は出力長に2を加算してください。
混在文字データ
MCHAR
MVARCHAR
定義長
各国文字データ
NCHAR
NVARCHAR
定義長×2
日付データ
DATE
10
時刻
TIME
8
日間隔データ
INTERVAL YEAR TO DAY
10
時間隔データ
INTERVAL HOUR TO SECOND
8
時刻印データ
TIMESTAMP
小数部
0:19 2:22 4:24 6:26
長大データ
BLOB
0
バイナリデータ
BINARY
0
抽象データ型
ADT
0
- 注※4
-
スキーマ単位の再編成(アンロードも含む)をする場合は,表ごとに求めた値を合計してください。
- 注※5
-
-mオプションでインフォメーションメッセージ出力抑止レベルにlvl2を指定した場合に出力されます。
- 注※6
-
Liを詳細値で見積もる場合は,「(Pi+M)+Li」を「(Li+Pi+M)」に置き換えてください。