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)については,次に示す表を基に各列のデータ長を求めてください。そのあと,すべての列の合計値を求めてください。
項番 |
分類 |
データ型 |
データ長(単位:バイト) |
|
---|---|---|---|---|
1 |
数データ |
INTEGER |
8 |
|
2 |
BIGINT |
|||
3 |
SMALLINT |
4 |
||
4 |
DECIMAL(m,n)※ NUMERIC(m,n)※ |
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 |
文字データ |
CHARACTER(n) |
n |
|
11 |
VARCHAR(n) |
wrk_var_col_size |
||
12 |
日時データ |
DATE |
4 |
|
13 |
TIME(p) |
3+↑p÷2↑ |
||
14 |
TIMESTAMP(p) |
7+↑p÷2↑ |
||
15 |
バイナリデータ |
BINARY(n) |
n |
|
16 |
VARBINARY(n) |
d+2 |
||
17 |
配列データ |
ARRAY |
14 |
- (凡例)
-
m,n:正の整数
d:実際のデータ長
p:0,3,6,9または12
- 注※
-
全体の桁数がm桁で,小数点以下の桁数がn桁の固定小数点数を示します。mを省略した場合は38が仮定されます。
- wrk_var_col_size:作業表に関するVARCHAR型の列のデータ長
-
次に示す表を基にデータ長を求めてください。
表5‒21 作業表に関するVARCHAR型の列のデータ長の一覧 項番
定義長n(単位:バイト)
データ長(単位:バイト)
1
1≦n≦32,000
d+2
2
32,001≦n≦64,000
d+8
- (凡例)
-
n:正の整数
d:実際のデータ長
変数WORK_ARRAY_ROWSZについては,次に示す計算式から求めてください。
計算式
変数の説明
- col_num
-
作業表を構成する列の総数
- col_size(i)
-
各列のデータ長(単位:バイト)
「表5‒20 各データ型のデータ長の一覧」を基に各列のデータ長を求めてください。そのあと,すべての列の合計値を求めてください。
- elm_num(i)
-
列の最大要素数
配列型以外の列の場合は,0としてください。