5.8.2 行の種別ごとの格納ページ数の求め方
ここでは,各表を格納するために必要な基本行用ページ数(変数BP(i)),および各表を格納するために必要な分岐行用ページ数(変数VP(i))の求め方について説明します。
(1) 基本行用ページ数(変数BP(i))の求め方
基本行用ページ数(変数BP(i))は,次に示す計算式から求めてください。変数BP(i)の分母の括弧部は1ページに格納される行数であり,最小1,最大255となります。
計算式
|
|
- 変数の説明
-
-
row_num
表に格納する行数(単位:個)
-
page_size
データ用DBエリアのページサイズ(単位:バイト)
-
pctfree
CREATE TABLE文のPCTFREEで指定する未使用領域の比率(単位:%)
未使用領域の比率を指定しない場合は,30%と仮定して計算してください。
なお,pctfreeの値は,次に示す計算式を満たすように値を決めてください。
計算式(pctfreeの値)
-
また,行長ROWSZは次に示す計算式から求めてください。非FIX表(表オプションBRANCH ALLの指定なし),非FIX表(表オプションBRANCH ALLの指定あり)およびFIX表で計算式が異なります。
計算式(非FIX表で表オプションBRANCH ALLの指定なしの場合)
|
|
計算式(非FIX表で表オプションBRANCH ALLの指定ありの場合)
|
|
計算式(FIX表の場合)
|
|
- 変数の説明
-
-
col_num
表の列の総数(単位:個)
-
col_size(i)
各列のデータ長(単位:バイト)
次に示す表を基に,各列のデータ長を求めてください。そのあとに,すべての列の合計を求めてください。
表5‒6 各データ型のデータ長の一覧 項番
分類
データ型
データ長(単位:バイト)
1
数データ
INTEGER
8
2
SMALLINT
4
3
DECIMAL(m,n)※
1≦m≦4
2
4
5≦m≦8
4
5
9≦m≦16
8
6
17≦m≦38
16
7
DOUBLE PRECISION
8
8
文字データ
CHARACTER(n)
n
9
VARCHAR(n)
基本行(実表)
var_col_size
10
日時データ
DATE
4
11
TIME(p)
3+↑p÷2↑
12
TIMESTAMP(p)
7+↑p÷2↑
13
バイナリデータ
BINARY(n)
n
14
VARBINARY(n)
基本行(実表)
var_col_size
- (凡例)
-
m,n:正の整数
p:0,3,6,9または12
- 注※
-
全体の桁数がm桁で,小数点以下の桁数がn桁の固定小数点数を示します。mを省略した場合は38が仮定されます。
- var_col_size:基本行内のVARCHAR型およびVARBINARY型の列のデータ長
-
次に示す表を基にデータ長を求めてください。
表5‒7 VARCHAR型およびVARBINARY型の列のデータ長の一覧 項番
表オプション
BRANCH ALLの指定有無
列定義
BRANCHの指定
定義長n
(単位:バイト)
データ長
(単位:バイト)
1
指定あり
−
−
9
2
指定なし
YES
−
11
3
NO
n≦255
d+2
4
n≧256
d+3
5
AUTOまたは指定なし
n≦255
d+2
6
n≧256
11
- (凡例)
-
n:正の整数
d:実際のデータ長
−:該当しません。
-
(2) 分岐行用ページ数(変数VP(i))の求め方
分岐行用ページ数(変数VP(i))は,次に示す計算式から求めてください。
計算式
|
|
- 変数の説明
-
-
row_num
表に格納する行数(単位:個)
-
var_num
分岐行として管理される列の列数(単位:個)
次に示す列の数を求めてください。
表オプションBRANCH ALLの指定ありの場合
・VARCHAR型,およびVARBINARY型の列の数
表オプションBRANCH ALLの指定なしの場合
次のどれかに該当するVARCHAR型,およびVARBINARY型の列の数の合計
・列定義BRANCHにYESを指定した列
・定義長256バイト以上で列定義BRANCHにAUTOを指定した列
・定義長256バイト以上で列定義BRANCHを省略した列
-
page_size
データ用DBエリアのページサイズ(単位:バイト)
-
pctfree
CREATE TABLE文のPCTFREEで指定する未使用領域の比率(単位:%)
未使用領域の比率を指定しない場合は,30%と仮定して計算してください。なお,pctfreeの値は,「5.8.2(1) 基本行用ページ数(変数BP(i))の求め方」の変数「pctfree」を参照して,計算式を満たすように値を決定してください。
-
var_size
分岐行の列の平均データ長(単位:バイト)
次に示す表を基に求めてください。
表5‒8 分岐行となる列のデータ長の一覧 分類
データ型
データ長(単位:バイト)
文字データ
VARCHAR
d
バイナリデータ
VARBINARY
d
- (凡例)
-
d:実際のデータ長
-