Hitachi

ノンストップデータベース HiRDB Version 9 システム導入・設計ガイド(Windows(R)用)


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

  • 条件1

    1024キロバイト≧Eのとき

  • 条件2

    1024キロバイト<Eのとき

E:バッファサイズ

ソート用ワークファイル容量の計算で使用するバッファサイズ」で求めたバッファサイズ

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:インデクスのキー長

表「インデクスのキー長一覧」を参照してください。ただし,可変長データの場合は単一列でも複数列として扱い,定義長の最大値で計算してください。

:行の実長

行の実長は,概算値又は詳細値で見積もってください。なお,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

ij:LOBデータ長

:プラグインが提供する抽象データ型のデータ長

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)」に置き換えてください。