Hitachi

Hitachi Advanced Database システム構築・運用ガイド


5.9.2 作業表を格納するために必要な基本行用ページ数の求め方

作業表を格納するために必要な基本行用ページ数(変数WP(i))は,次に示す計算式から求めてください。

計算式

[図データ]

変数の説明

row_num

表に格納する行数(単位:個)

page_size

作業表用DBエリアのページサイズ(単位:バイト)

5.7 作業表用DBエリアの設計」を基に決めた,初期設定オプションadb_init_wrk_page_sizeの指定値を代入してください。

ただし,adb_init_wrk_page_sizeの指定値の単位はキロバイトですが,変数page_sizeの単位はバイトです。単位が異なるため,注意してください。

初期設定オプションadb_init_wrk_page_sizeについては,マニュアルHADB コマンドリファレンスadbinit(データベースの初期設定)を参照してください。

変数ROWSZについては,次に示す計算式から求めてください。

なお,計算式で求めた値が「ROWSZ>32,704」となる場合は,計算式で求めた値に,「2×(col_num+1)」で求めた値を加算してください。

計算式

[図データ]

変数の説明

col_num作業表を構成する列の総数(単位:個)

col_size(i)各列のデータ長(単位:バイト)

変数col_size(i)については,次に示す表を基に各列のデータ長を求めてください。そのあと,すべての列の合計値を求めてください。

表5‒21 各データ型のデータ長の一覧

項番

分類

データ型

データ長(単位:バイト)

1

数データ

BIGINT

8

2

INTEGER

4※2

3

SMALLINT

2※3

4

DECIMAL(m,n)※1

NUMERIC(m,n)※1

1≦m≦4

2

5

5≦m≦8

4

6

9≦m≦16

8

7

17≦m≦38

16

8

DOUBLE PRECISION

8

9

FLOAT

10

REAL

4

11

文字データ

CHARACTER(n)

n

12

VARCHAR(n)

wrk_var_col_size

13

STRING

d+16

14

日時データ

DATE

4

15

TIME(p)

3+↑p÷2↑

16

TIMESTAMP(p)

7+↑p÷2↑

17

バイナリデータ

BINARY(n)

n

18

VARBINARY(n)

d+2

19

配列データ

ARRAY

14

20

構造データ

STRUCT

field_data_sizefield_num

21

論理データ

BOOLEAN

1

22

UUIDデータ

UUID

16

(凡例)

mn:正の整数

d:実際のデータ長

p:0,3,6,9または12

注※1

全体の桁数がm桁で,小数点以下の桁数がn桁の固定小数点数を示します。mを省略した場合は38が仮定されます。

注※2

整数データ型のデータ形式がレガシー形式の場合,データ長は8バイトになります。

注※3

整数データ型のデータ形式がレガシー形式の場合,データ長は4バイトになります。

field_data_size

STRUCT型の列のフィールドのデータ長の合計

STRUCT型のフィールドがある場合は,STRUCT型のフィールドを構成するフィールドのデータ長も加算してください。各フィールドのデータ長は,フィールドデータ型に対応するデータ長から求めてください。

field_num

STRUCT型の列のフィールド数の合計

STRUCT型のフィールドがある場合は,STRUCT型のフィールドを構成するフィールド数も加算してください。

wrk_var_col_size:作業表に関するVARCHAR型の列のデータ長

次に示す表を基にデータ長を求めてください。

表5‒22 作業表に関するVARCHAR型の列のデータ長の一覧

項番

定義長n(単位:バイト)

データ長(単位:バイト)

1

1≦n≦32,000

d+2

2

32,001≦n≦64,000

d16

(凡例)

n:正の整数

d:実際のデータ長

変数WORK_ARRAY_ROWSZについては,次に示す計算式から求めてください。

計算式

[図データ]

変数の説明

col_num

作業表を構成する列の総数

col_size(i)

各列のデータ長(単位:バイト)

表5‒21 各データ型のデータ長の一覧」を基に各列のデータ長を求めてください。そのあと,すべての列の合計値を求めてください。

elm_num(i)

列の最大要素数

配列型以外の列の場合は,0としてください。