5.8.1 データ用DBエリアの総ページ数の求め方
データ用DBエリアの総ページ数(DATA_PAGE_NUM)は,次に示す計算式から求めてください。
(1) 計算式
データ用DBエリアの総ページ数(DATA_PAGE_NUM)の計算式を次に示します。
計算式
|
(2) 変数の説明
データ用DBエリアの総ページ数(DATA_PAGE_NUM)を求める際に使用する変数を次に示します。
変数の説明
- dbarea_file_num
-
データ用DBエリアファイルの数(単位:個)
- page_size
-
ページサイズ(単位:バイト)
- SEGBF
-
セグメントブロック化係数
セグメントブロック化係数は,データ用DBエリアのページサイズおよび1セグメントの容量によって決まります。次の表から求めてください。
表5‒5 データ用DBエリアのページサイズおよび1セグメントの容量ごとのセグメントブロック化係数 項番
ページサイズ
(単位:キロバイト)
1セグメントの容量
(単位:メガバイト)
セグメントブロック化係数
1
4
4
12
2
8
42
3
16
127
4
32
341
5
16
170
6
32
102
- SGPAGENUM
-
データ用DBエリアのセグメントのページ数
次に示す計算式から求めてください。
-
クラウドストレージ機能を使用しない場合
SGPAGENUM= SGDATA×SEGSIZE
-
クラウドストレージ機能を使用する場合
SGPAGENUM= PGDATA
-
- SEGSIZE
-
セグメントサイズ(単位:ページ数)
次に示す計算式から求めてください。
SEGSIZE= 1セグメントの容量(単位:バイト)÷page_size
- SGDATA
-
データ用DBエリアのセグメント数
次に示す計算式から求めてください。
なお,変数SGROWTBL,SGCOLUMNTBL,SGIDX,SGRIX,およびSGTIXは,シングルチャンク表とマルチチャンク表で求め方が異なります。また,1つのデータ用DBエリア内に,シングルチャンク表とマルチチャンク表の両方を格納する場合,それぞれの変数SGROWTBL,SGCOLUMNTBL,SGIDX,SGRIX,およびSGTIXを求めて,すべて合計する必要があります。変数SGROWTBL,SGCOLUMNTBL,SGIDX,SGRIX,およびSGTIXの求め方を次に示します。
■シングルチャンク表の場合
- SGROWTBL(シングルチャンク表の場合)
-
データ用DBエリア内のローストア表のデータページを管理するセグメント数
「(a) 変数SGROWTBLおよびPGROWTBLの求め方(シングルチャンク表の場合)」を参照してください。
- SGCOLUMNTBL(シングルチャンク表の場合)
-
データ用DBエリア内のカラムストア表のデータページを管理するセグメント数
「(b) 変数SGCOLUMNTBLおよびPGCOLUMNTBLの求め方(シングルチャンク表の場合)」を参照してください。
- SGIDX(シングルチャンク表の場合)
-
データ用DBエリア内のB-treeインデクスページを管理するセグメント数
「(c) 変数SGIDXおよびPGIDXの求め方(シングルチャンク表の場合)」を参照してください。
- SGRIX(シングルチャンク表の場合)
-
データ用DBエリア内のレンジインデクスページを管理するセグメント数
「(d) 変数SGRIXの求め方(シングルチャンク表の場合)」を参照してください。
- SGTIX(シングルチャンク表の場合)
-
データ用DBエリア内のテキストインデクスページを管理するセグメント数
「(e) 変数SGTIXの求め方(シングルチャンク表の場合)」を参照してください。
■マルチチャンク表の場合
- SGROWTBL(マルチチャンク表の場合)
-
データ用DBエリア内のローストア表のデータページを管理するセグメント数
「(f) 変数SGROWTBLおよびPGROWTBLの求め方(マルチチャンク表の場合)」を参照してください。
- SGCOLUMNTBL(マルチチャンク表の場合)
-
データ用DBエリア内のカラムストア表のデータページを管理するセグメント数
「(g) 変数SGCOLUMNTBLおよびPGCOLUMNTBLの求め方(マルチチャンク表の場合)」を参照してください。
- SGIDX(マルチチャンク表の場合)
-
データ用DBエリア内のB-treeインデクスページを管理するセグメント数
「(h) 変数SGIDXおよびPGIDXの求め方(マルチチャンク表の場合)」を参照してください。
- SGRIX(マルチチャンク表の場合)
-
データ用DBエリア内のレンジインデクスページを管理するセグメント数
「(i) 変数SGRIXの求め方(マルチチャンク表の場合)」を参照してください。
- SGTIX(マルチチャンク表の場合)
-
データ用DBエリア内のテキストインデクスページを管理するセグメント数
「(j) 変数SGTIXの求め方(マルチチャンク表の場合)」を参照してください。
- PGDATA
-
データ用DBエリアのセグメントのページ数
次に示す計算式から求めてください。
PGDATA=PGROWTBL+PGCOLUMNTBL+PGIDX+SGRIX×SEGSIZE
なお,変数PGROWTBL,PGCOLUMNTBL,PGIDX,およびSGRIXは,シングルチャンク表とマルチチャンク表で求め方が異なります。また,1つのデータ用DBエリア内に,シングルチャンク表とマルチチャンク表の両方を格納する場合,それぞれの変数PGROWTBL,PGCOLUMNTBL,PGIDX,およびSGRIXを求めて,すべて合計する必要があります。変数PGROWTBL,PGCOLUMNTBL,PGIDX,およびSGRIXの求め方を次に示します。
■シングルチャンク表の場合
- PGROWTBL(シングルチャンク表の場合)
-
データ用DBエリア内のローストア表のデータページを管理するセグメントのページ数
「(a) 変数SGROWTBLおよびPGROWTBLの求め方(シングルチャンク表の場合)」を参照してください。
- PGCOLUMNTBL(シングルチャンク表の場合)
-
データ用DBエリア内のカラムストア表のデータページを管理するセグメントのページ数
「(b) 変数SGCOLUMNTBLおよびPGCOLUMNTBLの求め方(シングルチャンク表の場合)」を参照してください。
- PGIDX(シングルチャンク表の場合)
-
データ用DBエリア内のB-treeインデクスページを管理するセグメントのページ数
「(c) 変数SGIDXおよびPGIDXの求め方(シングルチャンク表の場合)」を参照してください。
- SGRIX(シングルチャンク表の場合)
-
データ用DBエリア内のレンジインデクスページを管理するセグメント数
「(d) 変数SGRIXの求め方(シングルチャンク表の場合)」を参照してください。
■マルチチャンク表の場合
- PGROWTBL(マルチチャンク表の場合)
-
データ用DBエリア内のローストア表の表データを格納するために必要なページ数
「(f) 変数SGROWTBLおよびPGROWTBLの求め方(マルチチャンク表の場合)」を参照してください。
- PGCOLUMNTBL(マルチチャンク表の場合)
-
データ用DBエリア内のカラムストア表のデータページを管理するセグメントのページ数
「(g) 変数SGCOLUMNTBLおよびPGCOLUMNTBLの求め方(マルチチャンク表の場合)」を参照してください。
- PGIDX(マルチチャンク表の場合)
-
データ用DBエリア内のB-treeインデクスページを管理するセグメントのページ数
「(h) 変数SGIDXおよびPGIDXの求め方(マルチチャンク表の場合)」を参照してください。
- SGRIX(マルチチャンク表の場合)
-
データ用DBエリア内のレンジインデクスページを管理するセグメント数
「(i) 変数SGRIXの求め方(マルチチャンク表の場合)」を参照してください。
(a) 変数SGROWTBLおよびPGROWTBLの求め方(シングルチャンク表の場合)
変数SGROWTBLおよびPGROWTBLは,次に示す計算式から求めてください。
- SGROWTBL
-
データ用DBエリア内のローストア表のデータページを管理するセグメント数
- PGROWTBL
-
データ用DBエリア内のローストア表のデータページを管理するセグメントのページ数
- row_tbl_num_in_dbarea
-
データ用DBエリア中のすべての表数(単位:個)
- BP(i)
-
各表を格納するために必要な基本行用ページ数
「5.8.2 行の種別ごとの格納ページ数の求め方」の「(1) 基本行用ページ数(変数BP(i))の求め方」を参照してください。
- VP(i)
-
各表を格納するために必要な分岐行用ページ数
「5.8.2 行の種別ごとの格納ページ数の求め方」の「(2) 分岐行用ページ数(変数VP(i))の求め方」を参照してください。
(b) 変数SGCOLUMNTBLおよびPGCOLUMNTBLの求め方(シングルチャンク表の場合)
カラムストア表にはデータが圧縮されて格納されるため,ローストア表のようにレコード長から順に見積もり式を計算していくことができません。そのため,実際に少量のデータを格納し,その圧縮率を基にセグメント数(SGCOLUMNTBL)またはセグメントのページ数(PGCOLUMNTBL)を見積もります。
- SGCOLUMNTBL
-
データ用DBエリア内のカラムストア表のデータページを管理するセグメント数
次に示す計算式から求めてください。
- PGCOLUMNTBL
-
データ用DBエリア内のカラムストア表のデータページを管理するセグメントのページ数
次に示す計算式から求めてください。
- column_tbl_num_in_dbarea
-
データ用DBエリア中のすべてのカラムストア表の数(単位:個)
- SEGSIZE
-
セグメントサイズ(単位:ページ数)
次に示す計算式から求めてください。
SEGSIZE= 1セグメントの容量(単位:バイト)÷page_size
- COLUMNTBLSIZE(i)
-
i番目のカラムストア表のデータサイズ(単位:メガバイト)
次に示す計算式から求めてください。
COLUMNTBLSIZE(i)=IMPORTDATASIZE(i)×COMPRESSION_RATE+COLUMNIZESIZE(i)
- IMPORTDATASIZE(i)
-
i番目のカラムストア表に格納する元データ(CSVファイル)のサイズ(単位:メガバイト)
- COMPRESSION_RATE
-
元データの圧縮率
i番目のカラムストア表に格納する元データの一部をadbimportコマンドで格納してください。そのあと,次に示す計算式から求めてください。
- testdbsize
-
元データの一部をadbimportコマンドでインポートした際の,データベースの使用量(単位:メガバイト)
計算式を求めるためにインポートする元データの一部には,100~500メガバイト程度の実データに近いデータを用意することを推奨します。adbimportコマンドを実行するときは,インポートオプションadb_import_rthd_numに2を指定してください。
adbimportコマンド実行後に,adbdbstatusコマンドで,表のサマリ情報に含まれるUsed_segments(表の使用中セグメント数)をメガバイト単位で出力してください。そして,データベースの使用量を確認してください。
adbimportコマンドおよびadbdbstatusコマンドについては,マニュアルHADB コマンドリファレンスを参照してください。
- testcsvsize
-
adbimportコマンドでインポートした元データの一部のCSVファイルのサイズ(単位:メガバイト)
- pgtestdbsize
-
元データの一部をadbimportコマンドでインポートした際の,データベースの使用量(単位:メガバイト)
計算式を求めるためにインポートする元データの一部には,100~500メガバイト程度の実データに近いデータを用意することを推奨します。adbimportコマンドを実行するときは,インポートオプションadb_import_rthd_numに2を指定してください。
adbimportコマンド実行後に,adbdbstatusコマンドで,表のサマリ情報に含まれるUsed_pages(表の使用中ページ数)をメガバイト単位で出力してください。そして,データベースの使用量を確認してください。
adbimportコマンドおよびadbdbstatusコマンドについては,マニュアルHADB コマンドリファレンスを参照してください。
- COLUMNIZESIZE(i)
-
i番目のカラムストア表に,更新行のカラム化機能のメンテナンス処理で格納されるカラムストア形式のデータのサイズ(単位:メガバイト)
変数COLUMNIZESIZE(i)は更新行のカラム化機能を有効にしている場合にだけ加算してください。なお,i番目のカラムストア表にB-treeインデクスを定義している場合は,0として見積もってください。
計算式を次に示します。
- IMPORTDATASIZE(i)
-
i番目のカラムストア表に格納する元データ(CSVファイル)のサイズ(単位:メガバイト)
- COMPRESSION_RATE
-
元データの圧縮率
上記にある変数COMPRESSION_RATEを参照して求めてください。
- insert_row_num(i)
-
i番目のカラムストア表で,INSERT文またはUPDATE文によって,追加または更新される行数
- import_row_num(i)
-
i番目のカラムストア表に格納する元データ(CSVファイル)の行数
- ADDTBLPGNUM(i)
-
i番目のカラムストア表にINSERT文またはUPDATE文で追加するデータのページ数
次に示す計算式から求めてください。
ADDTBLPGNUM(i)= BP(i)+VP(i)
- BP(i)
-
i番目のカラムストア表にINSERT文またはUPDATE文で追加するデータの基本行用ページ数
i番目のカラムストア表にINSERT文またはUPDATE文で追加する行数を基に,「5.8.2 行の種別ごとの格納ページ数の求め方」の「(1) 基本行用ページ数(変数BP(i))の求め方」を参照して求めてください。
- VP(i)
-
i番目のカラムストア表にINSERT文またはUPDATE文で追加するデータの分岐行用ページ数
i番目のカラムストア表にINSERT文またはUPDATE文で追加する行数を基に,「5.8.2 行の種別ごとの格納ページ数の求め方」の「(2) 分岐行用ページ数(変数VP(i))の求め方」を参照して求めてください。
- DELTBLPGNUM(i)
-
i番目のカラムストア表にUPDATE文またはDELETE文で無効情報管理用ページに追加するデータのページ数
次に示す計算式から求めてください。
DELTBLPGNUM(i)= DELLEAFPGNUM(i)+DELUPPERPGNUM(i)
- DELLEAFPGNUM(i)
-
次に示す計算式から求めてください。
- update_row_num
-
i番目のカラムストア表に対してUPDATE文で更新する行数
- delete_row_num
-
i番目のカラムストア表に対してDELETE文で削除する行数
- page_size
-
i番目のカラムストア表が定義されているDBエリアのページサイズ(単位:バイト)
- DELUPPERPGNUM(i)
-
次に示す計算式から求めてください。
また,変数SGCOLUMNTBLおよびPGCOLUMNTBLについては,すべての列で圧縮方式に無圧縮(NONE)が選択された場合を仮定し,そのサイズを求めることで見積もり値を求めることもできます。ただし,選択された圧縮方式や圧縮率によっては,実際に格納した場合のサイズに比べて見積もり値が大きくなることがあります。
すべての列で圧縮方式に無圧縮(NONE)が選択された場合の見積もり値は,それぞれ次に示す計算式から求めてください。
- SGCOLUMNTBL
-
- PGCOLUMNTBL
-
- COLUMNDATASEGNUM(i)
-
i番目のカラムストア表のカラムデータ用セグメント数
次に示す計算式から求めてください。
- PAGE_ROW_NUM
-
セグメント内の格納行数
次に示す計算式から求めてください。
- COLUMNDATAPGNUM(i)
-
i番目のカラムストア表のカラムデータ用セグメントのページ数
次に示す計算式から求めてください。
-
PAGE_ROW_NUM≦262,144の場合
-
PAGE_ROW_NUM>262,144の場合
-
- row_num
-
i番目のカラムストア表に格納する行数
- column_num
-
i番目のカラムストア表の列数
- page_size
-
データ用DBエリアのページサイズ(単位:バイト)
- COL_PAGE_NUM
-
変数COL_PAGE_NUMに代入する値は,データ用DBエリアのページサイズおよび1セグメントの容量によって決まります。次の表のデータ用DBエリアのページサイズおよび1セグメントの容量に対応する値を代入してください。
表5‒6 変数COL_PAGE_NUMに代入する値 項番
ページサイズ
(単位:キロバイト)
1セグメントの容量
(単位:メガバイト)
COL_PAGE_NUMの値
1
4
4
1,021
2
8
510
3
16
255
4
32
127
5
16
511
6
32
1,023
- COL_MAX_SIZE
-
i番目のカラムストア表の列データの最大データ長
次に示す計算式から求めてください。
例えば,i番目のカラムストア表にC1列,C2列,C3列が定義されている場合,次の計算をしてください。計算結果の最大値がCOL_MAX_SIZEの値になります。
-
COLUMNDATASIZE(1)×elm_num(1)
-
COLUMNDATASIZE(2)×elm_num(2)
-
COLUMNDATASIZE(3)×elm_num(3)
-
- COLUMNDATASIZE(k)
-
k列目の列データのデータ長(単位:バイト)
変数COLUMNDATASIZEに代入する値は,列データのデータ型によって異なります。次の表で該当する値を代入してください。
表5‒7 各列データのデータ型のデータ長の一覧 項番
分類
データ型
データ長(単位:バイト)
1
数データ
INTEGER
10
2
BIGINT
3
SMALLINT
6
4
DECIMAL(m,n)※
NUMERIC(m,n)※
m≦4
4
5
5≦m≦8
6
6
9≦m≦16
10
7
17≦m
18
8
DOUBLE PRECISION
10
9
FLOAT
10
文字データ
CHARACTER(n)
n≦127
11
128≦n
10
12
VARCHAR(n)
n≦127
13
128≦n≦255
128
14
256≦n
130
15
日時データ
DATE
6
16
TIME(p)
17
TIMESTAMP(p)
18
バイナリデータ
BINARY(n)
n≦127
19
128≦n
10
20
VARBINARY(n)
n≦127
21
128≦n≦255
128
22
256≦n
130
- (凡例)
-
m,n:正の整数
p:0,3,6,9または12
- 注※
-
全体の桁数がm桁で,小数点以下の桁数がn桁の固定小数点数を示します。mを省略した場合は38が仮定されます。
- elm_num(k)
-
k列目の配列要素数の平均値(単位:個)
k列目の列が配列型以外の列の場合は,1としてください。
- ROWDATASEGNUM(i)
-
i番目のカラムストア表のローデータ用セグメント数
次に示す計算式から求めてください。
- ROWDATAPGNUM(i)
-
i番目のカラムストア表のローデータ用セグメントのページ数
次に示す計算式から求めてください。
- row_num
-
i番目のカラムストア表に格納する行数
- page_size
-
データ用DBエリアのページサイズ(単位:バイト)
- var_num
-
分岐行として管理される列の列数(単位:個)
CHAR型,またはBINARY型の場合,定義長が128バイト以上の列の列数を求めてください。
VARCHAR型,またはVARBINARY型の場合,実長が128バイト以上のデータを含む列の列数を求めてください。
- var_size
-
分岐行の列のデータ長(単位:バイト)
変数var_sizeに代入する値は,データ型によって異なります。次の表で該当する値を代入してください。
表5‒8 変数var_sizeに代入する値 項番
分類
データ型
データ長(単位:バイト)
1
文字データ
CHAR
定義長
2
VARCHAR
d
3
バイナリデータ
BINARY
定義長
4
VARBINARY
d
- (凡例)
-
d:実際のデータ長
- COLUMNIZESEGNUM(i)
-
i番目のカラムストア表に,更新行のカラム化機能のメンテナンス処理で格納されるカラムデータ用セグメント数
変数COLUMNIZESEGNUM(i)は,更新行のカラム化機能を有効にしている場合にだけ加算してください。なお,i番目のカラムストア表にB-treeインデクスを定義している場合は,0として見積もってください。
計算式を次に示します。
COLUMNIZESEGNUM(i)= COLUMNDATASEGNUM(i)
変数COLUMNDATASEGNUM(i)の求め方については,上記にある変数COLUMNDATASEGNUM(i)を参照してください。その際,変数row_numにはi番目のカラムストア表で,INSERT文またはUPDATE文によって,追加または更新される行数を代入してください。
(c) 変数SGIDXおよびPGIDXの求め方(シングルチャンク表の場合)
変数SGIDXおよびPGIDXは,次に示す計算式から求めてください。
- SGIDX
-
データ用DBエリア内のB-treeインデクスページを管理するセグメント数
- PGIDX
-
データ用DBエリア内のB-treeインデクスページを管理するセグメントのページ数
- idx_num_in_dbarea
-
データ用DBエリア中のすべてのB-treeインデクス数(単位:個)
- IP_LOWER(i)
-
各B-treeインデクスの下位ページ用のセグメントで使用するページ数
「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(1) 下位ページ用のセグメントで使用する格納ページ数(変数IP_LOWER(i))の求め方」を参照してください。
- IP_UPPER(i)
-
各B-treeインデクスの上位ページ用のセグメントで使用するページ数
「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(2) 上位ページ用のセグメントで使用する格納ページ数(変数IP_UPPER(i))の求め方」を参照してください。
(d) 変数SGRIXの求め方(シングルチャンク表の場合)
次に示す計算式から求めてください。
|
- rng_num_in_dbarea
-
データ用DBエリア中のレンジインデクス数(単位:個)
- RS(i)
-
各レンジインデクスを格納するために必要なセグメント数
「5.8.6 レンジインデクスを格納するセグメント数の求め方」を参照してください。
(e) 変数SGTIXの求め方(シングルチャンク表の場合)
次に示す計算式から求めてください。
|
- idx_num_in_dbarea
-
データ用DBエリア中のすべてのテキストインデクス数(単位:個)
- TIP_STRSEG(i)
-
各テキストインデクスの文字列管理部用のセグメントで使用するページ数
「5.8.5 テキストインデクスのセグメントごとの格納ページ数の求め方」の「(1) 文字列管理部用のセグメントで使用する格納ページ数(変数TIP_STRSEG(i))の求め方」を参照してください。
- TIP_APPSEG(i)
-
各テキストインデクスの出現情報管理部用のセグメントで使用するページ数
「5.8.5 テキストインデクスのセグメントごとの格納ページ数の求め方」の「(2) 出現情報管理部用のセグメントで使用する格納ページ数(変数TIP_APPSEG(i))の求め方」を参照してください。
(f) 変数SGROWTBLおよびPGROWTBLの求め方(マルチチャンク表の場合)
変数SGROWTBLおよびPGROWTBLは,次に示す計算式から求めてください。
- SGROWTBL
-
データ用DBエリア内のローストア表のデータページを管理するセグメント数
- PGROWTBL
-
データ用DBエリア内のローストア表の表データを格納するために必要なページ数
- row_tbl_num_in_dbarea
-
データ用DBエリア中のすべてのローストア表数(単位:個)
- chunk_num
-
作成されるアーカイブ状態ではないチャンク数(単位:個)
- CHBP(i,k)
-
各チャンクの表を格納するために必要な基本行用ページ数
対象のチャンクに-bオプションを指定したadbimportコマンド,INSERT文,およびUPDATE文で格納するデータ量から見積もった値を代入してください。
- CHVP(i,k)
-
各チャンクの表を格納するために必要な分岐行用ページ数
対象のチャンクに-bオプションを指定したadbimportコマンド,INSERT文,およびUPDATE文で格納するデータ量から見積もった値を代入してください。
- SGLTBL(i)
-
i番目のアーカイブマルチチャンク表に対応するロケーション表を格納するために必要なセグメント数
アーカイブマルチチャンク表の場合に求める必要があります。
次に示す計算式から求めてください。
計算式
- SEGSIZE
-
「5.8.1 データ用DBエリアの総ページ数の求め方」の「(2) 変数の説明」にある「SEGSIZE」を参照してください。
- LBP(i)
-
次に示す計算式から求めてください。
計算式
- page_size
-
アーカイブマルチチャンク表を定義したデータ用DBエリアのページサイズ(単位:バイト)
- row_size
-
1行のサイズ(単位:バイト)
変数row_sizeに代入する値は,アーカイブレンジ列のデータ型によって異なります。変数row_sizeとアーカイブレンジ列のデータ型の関係を,次の表に示します。
表5‒9 変数row_sizeとアーカイブレンジ列のデータ型の関係 項番
アーカイブレンジ列のデータ型
変数row_sizeに代入する値
1
INTEGER
102
2
BIGINT
3
SMALLINT
94
4
DECIMAL(m,n)
NUMERIC(m,n)
1≦m≦4
90
5
5≦m≦8
94
6
9≦m≦16
102
7
17≦m≦38
118
8
DOUBLE PRECISION
102
9
FLOAT
10
CHARCTER(p)
88+2×p
11
DATE
94
12
TIME
104
13
TIMESTAMP
112
- (凡例)
-
m:精度
n:位取り
p:文字列の長さ(単位:バイト)
- LROWNUM
-
ロケーション表に格納する行数(単位:個)
次に示す計算式から求めてください。
計算式
- archive_chunk_num
-
adbarchivechunkコマンドの実行回数
- merge_chunk_num
-
adbmergechunkコマンドの実行回数
- FILENUM(i)
-
i回目のadbarchivechunkコマンドで作成されるアーカイブファイル数の合計
次に示す計算式から求めてください。
計算式
- FILENUM(j)
-
j回目のadbmergechunkコマンドでマージするアーカイブ状態のチャンクに対応するアーカイブファイル数の合計
変数FILENUM(i)の計算式を使用して求めてください。その際,「i」を「j」に置き換えてください。
- chunk_num
-
コマンドの対象となるチャンク数(単位:個)
- thd_num
-
次の値を代入してください。
-
adbarchivechunkコマンドで作成されるアーカイブファイル数を求める場合
次に示す計算式から求めてください。
↓(adbarchivechunkコマンド実行時のアーカイブチャンクオプションadb_arcv_rthd_numの指定値-1)÷2↓
-
adbmergechunkコマンドでマージするアーカイブ状態のチャンクに対応するアーカイブファイル数を求める場合
次の値を指定してください。
adbmergechunkコマンドの処理対象チャンクに対して,adbarchivechunkコマンド実行時のアーカイブチャンクオプションadb_arcv_rthd_numの指定値
-
- SGMTGRPNUM
-
変数SGMTGRPNUMは,変数sgmtnum_in_chunkの値で異なります。変数sgmtnum_in_chunkと変数SGMTGRPNUMの関係を,次の表に示します。
表5‒10 変数sgmtnum_in_chunkと変数SGMTGRPNUMの関係 項番
変数sgmtnum_in_chunkの値
変数SGMTGRPNUMの値(単位:個数)
1
sgmtnum_in_chunk<16
SGMTGRPNUMには,1を代入してください。
2
16≦sgmtnum_in_chunk
かつ
sgmtnum_in_chunk<32
SGMTGRPNUMには,4を代入してください。
3
32≦sgmtnum_in_chunk
かつ
sgmtnum_in_chunk<64
SGMTGRPNUMには,8を代入してください。
4
64≦sgmtnum_in_chunk
かつ
sgmtnum_in_chunk<256
SGMTGRPNUMには,16を代入してください。
5
256≦sgmtnum_in_chunk
SGMTGRPNUMは,次に示す計算式で求めてください。
- sgmtnum_in_chunk
-
アーカイブ対象のチャンクの中で,最も大きな表のセグメント数
次に示す計算式から求めてください。
計算式
- CHBP(j)
-
「CHBP(i,k)」を参照してください。
- CHVP(j)
-
「CHVP(i,k)」を参照してください。
- SEGSIZE
-
「5.8.1 データ用DBエリアの総ページ数の求め方」の「(2) 変数の説明」にある「SEGSIZE」を参照してください。
- page_size
-
「5.8.1 データ用DBエリアの総ページ数の求め方」の「(2) 変数の説明」にある「page_size」を参照してください。
- LVP(i)
-
次に示す計算式から求めてください。
計算式
- SGLIDX(i)
-
i番目のアーカイブマルチチャンク表に対応するロケーション表に定義されたインデクスを格納するために必要なセグメント数
アーカイブマルチチャンク表の場合に求める必要があります。
次に示す計算式から求めてください。
計算式
- LICHKIDP_LOWER(i)
-
アーカイブファイルに対応するチャンクのチャンクIDに定義されたインデクスの下位ページ用セグメントで使用するページ数(単位:ページ)
- LICHKIDP_UPPER(i)
-
アーカイブファイルに対応するチャンクのチャンクIDに定義されたインデクスの上位ページ用セグメントで使用するページ数(単位:ページ)
- LIRNG01P_LOWER(i)
-
アーカイブファイルに格納されたデータについて,アーカイブレンジ列の値の範囲(上限値と下限値)に定義されたインデクスの下位ページ用セグメントで使用するページ数(単位:ページ)
- LIRNG01P_UPPER(i)
-
アーカイブファイルに格納されたデータについて,アーカイブレンジ列の値の範囲(上限値と下限値)に定義されたインデクスの上位ページ用セグメントで使用するページ数(単位:ページ)
- LIRNG02P_LOWER(i)
-
アーカイブファイルに格納されたデータについて,アーカイブレンジ列の値の下限値に定義されたインデクスの下位ページ用セグメントで使用するページ数(単位:ページ)
- LIRNG02P_UPPER(i)
-
アーカイブファイルに格納されたデータについて,アーカイブレンジ列の値の下限値に定義されたインデクスの上位ページ用セグメントで使用するページ数(単位:ページ)
LICHKIDP_LOWER(i),LIRNG01P_LOWER(i),およびLIRNG02P_LOWER(i)については,「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(1) 下位ページ用のセグメントで使用する格納ページ数(変数IP_LOWER(i))の求め方」の変数IP_LOWER(i)の計算式で求めてください。LICHKIDP_UPPER(i),LIRNG01P_UPPER(i),およびLIRNG02P_UPPER(i)については,「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(2) 上位ページ用のセグメントで使用する格納ページ数(変数IP_UPPER(i))の求め方」の変数IP_UPPER(i)の計算式で求めてください。その際,各変数には次の値を代入してください。
- R
-
1.5を代入してください。
- key_num
-
0を代入してください。
- dup_key_num
-
次の計算式で求めた値を代入してください。
計算式
- page_size
-
アーカイブマルチチャンク表を格納するデータ用DBエリアのページサイズを,バイト単位で代入してください。
- pctfree
-
30を代入してください。
- key_dup
-
0を代入してください。
- KEYSZDB
-
次の表で該当する値を代入してください。
表5‒11 変数KEYSZDBに代入する値 項番
見積もり対象の変数
アーカイブレンジ列のデータ型
変数KEYSZDBに代入する値
1
見積もり対象の変数は次のとおりです。
-
LICHKIDP_LOWER(i)
-
LICHKIDP_UPPER(i)
−
8
2
見積もり対象の変数は次のとおりです。
-
LIRNG01P_LOWER(i)
-
LIRNG01P_UPPER(i)
INTEGER
16
3
BIGINT
4
SMALLINT
8
5
DECIMAL(m,n)
NUMERIC(m,n)
1≦m≦4
4
6
5≦m≦8
8
7
9≦m≦16
16
8
17≦m≦38
32
9
DOUBLE PRECISION
16
10
FLOAT
11
CHARACTER(p)
2×p
12
DATE
8
13
TIME
18
14
TIMESTAMP
26
15
見積もり対象の変数は次のとおりです。
-
LIRNG02P_LOWER(i)
-
LIRNG02P_UPPER(i)
INTEGER
8
16
BIGINT
17
SMALLINT
4
18
DECIMAL(m,n)
NUMERIC(m,n)
1≦m≦4
2
19
5≦m≦8
4
20
9≦m≦16
8
21
17≦m≦38
16
22
DOUBLE PRECISION
8
23
FLOAT
24
CHARACTER(p)
p
25
DATE
4
26
TIME
9
27
TIMESTAMP
13
- (凡例)
-
−:該当しません。
m:精度
n:位取り
p:文字列の長さ(単位:バイト)
-
(g) 変数SGCOLUMNTBLおよびPGCOLUMNTBLの求め方(マルチチャンク表の場合)
カラムストア表にはデータが圧縮されて格納されるため,ローストア表のようにレコード長から順に見積もり式を計算していくことができません。そのため,実際に少量のデータを格納し,その圧縮率を基にセグメント数(SGCOLUMNTBL)またはセグメントのページ数(PGCOLUMNTBL)を見積もります。
- SGCOLUMNTBL
-
データ用DBエリア内のカラムストア表のデータページを管理するセグメント数
次に示す計算式から求めてください。
- PGCOLUMNTBL
-
データ用DBエリア内のカラムストア表のデータページを管理するセグメントのページ数
次に示す計算式から求めてください。
- column_tbl_num_in_dbarea
-
データ用DBエリア中のすべてのカラムストア表の数(単位:個)
- COLUMNTBLSIZE(i)
-
i番目のカラムストア表のデータサイズ(単位:メガバイト)
次に示す計算式から求めてください。
- chunk_num
-
作成されるチャンク数(単位:個)
- IMPORTDATASIZE(i,k)
-
i番目のカラムストア表の,k番目のチャンクに格納する元データ(CSVファイル)のサイズ(単位:メガバイト)
- COMPRESSION_RATE
-
元データの圧縮率
i番目のカラムストア表に格納する元データの一部をadbimportコマンドで格納してください。そのあと,次に示す計算式から求めてください。
- testdbsize
-
元データの一部をadbimportコマンドでインポートした際の,データベースの使用量(単位:メガバイト)
計算式を求めるためにインポートする元データの一部には,100~500メガバイト程度の実データに近いデータを用意することを推奨します。adbimportコマンドを実行するときは,インポートオプションadb_import_rthd_numに2を指定してください。
adbimportコマンド実行後に,adbdbstatusコマンドで,表のサマリ情報に含まれるUsed_segments(表の使用中セグメント数)をメガバイト単位で出力してください。そして,データベースの使用量を確認してください。
adbimportコマンドおよびadbdbstatusコマンドについては,マニュアルHADB コマンドリファレンスを参照してください。
- testcsvsize
-
adbimportコマンドでインポートした元データの一部のCSVファイルのサイズ(単位:メガバイト)
- pgtestdbsize
-
元データの一部をadbimportコマンドでインポートした際の,データベースの使用量(単位:メガバイト)
計算式を求めるためにインポートする元データの一部には,100~500メガバイト程度の実データに近いデータを用意することを推奨します。adbimportコマンドを実行するときは,インポートオプションadb_import_rthd_numに2を指定してください。
adbimportコマンド実行後に,adbdbstatusコマンドで,表のサマリ情報に含まれるUsed_pages(表の使用中ページ数)をメガバイト単位で出力してください。そして,データベースの使用量を確認してください。
adbimportコマンドおよびadbdbstatusコマンドについては,マニュアルHADB コマンドリファレンスを参照してください。
- COLUMNIZESIZE(i,k)
-
i番目のカラムストア表のk番目のチャンクに,更新行のカラム化機能のメンテナンス処理で格納されるカラムストア形式のデータのサイズ(単位:メガバイト)
COLUMNIZESIZE(i,k)は更新行のカラム化機能を有効にしている場合にだけ加算してください。なお,i番目のカラムストア表にB-treeインデクスを定義している場合は,0として見積もってください。
計算式を次に示します。
- IMPORTDATASIZE(i,k)
-
i番目のカラムストア表のk番目のチャンクに格納する元データ(CSVファイル)のサイズ(単位:メガバイト)
- COMPRESSION_RATE
-
元データの圧縮率
上記にある変数COMPRESSION_RATEを参照して求めてください。
- insert_row_num(i,k)
-
i番目のカラムストア表のk番目のチャンクで,INSERT文またはUPDATE文によって,追加または更新される行数
- import_row_num(i,k)
-
i番目のカラムストア表のk番目のチャンクに格納する元データ(CSVファイル)の行数
- UPDATESEGNUM(i)
-
i番目のカラムストア表に対して,更新系SQLの実行で増えるセグメント数
次に示す計算式から求めてください。
- SEGSIZE
-
セグメントサイズ(単位:ページ数)
次に示す計算式から求めてください。
SEGSIZE= 1セグメントの容量(単位:バイト)÷page_size
- page_size
-
i番目のカラムストア表が定義されているDBエリアのページサイズ(単位:バイト)
- ADDTBLPGNUM(i,k)
-
i番目のカラムストア表の,k番目のチャンクにINSERT文またはUPDATE文で追加するデータのページ数
次に示す計算式から求めてください。
ADDTBLPGNUM(i,k)= BP(i,k)+VP(i,k)
- BP(i,k)
-
i番目のカラムストア表の,k番目のチャンクにINSERT文またはUPDATE文で追加するデータの基本行用ページ数
i番目のカラムストア表の,k番目のチャンクにINSERT文またはUPDATE文で追加する行数を基に,「5.8.2 行の種別ごとの格納ページ数の求め方」の「(1) 基本行用ページ数(変数BP(i))の求め方」を参照して求めてください。
- VP(i,k)
-
i番目のカラムストア表の,k番目のチャンクにINSERT文またはUPDATE文で追加するデータの分岐行用ページ数
i番目のカラムストア表の,k番目のチャンクにINSERT文またはUPDATE文で追加する行数を基に,「5.8.2 行の種別ごとの格納ページ数の求め方」の「(2) 分岐行用ページ数(変数VP(i))の求め方」を参照して求めてください。
- DELTBLPGNUM(i,k)
-
i番目のカラムストア表の,k番目のチャンクにUPDATE文またはDELETE文で無効情報管理用ページに追加するデータのページ数
次に示す計算式から求めてください。
DELTBLPGNUM(i,k)= DELLEAFPGNUM(i,k)+DELUPPERPGNUM(i,k)
- DELLEAFPGNUM(i,k)
-
次に示す計算式から求めてください。
- update_row_num
-
i番目のカラムストア表の,k番目のチャンクに対してUPDATE文で更新する行数
- delete_row_num
-
i番目のカラムストア表の,k番目のチャンクに対してDELETE文で削除する行数
- page_size
-
i番目のカラムストア表が定義されているDBエリアのページサイズ(単位:バイト)
- DELUPPERPGNUM(i,k)
-
次に示す計算式から求めてください。
また,変数SGCOLUMNTBLおよびPGCOLUMNTBLについては,すべての列で圧縮方式に無圧縮(NONE)が選択された場合を仮定し,そのサイズを求めることで見積もり値を求めることもできます。ただし,選択された圧縮方式や圧縮率によっては,実際に格納した場合のサイズに比べて見積もり値が大きくなることがあります。
すべての列で圧縮方式に無圧縮(NONE)が選択された場合の見積もり値は,それぞれ次に示す計算式から求めてください。
- SGCOLUMNTBL
-
- PGCOLUMNTBL
-
- COLUMNTBLSEGNUM(i)
-
i番目のカラムストア表のセグメント数
次に示す計算式から求めてください。
- COLUMNDATASEGNUM(i,k)
-
i番目のカラムストア表の,k番目のチャンクのカラムデータ用セグメント数
次に示す計算式から求めてください。
- PAGE_ROW_NUM
-
セグメント内の格納行数
次に示す計算式から求めてください。
- COLUMNDATAPGNUM(i,k)
-
i番目のカラムストア表の,k番目のチャンクのカラムデータ用セグメントのページ数
次に示す計算式から求めてください。
-
PAGE_ROW_NUM≦262,144の場合
-
PAGE_ROW_NUM>262,144の場合
-
- row_num
-
i番目のカラムストア表の,k番目のチャンクに格納する行数
- column_num
-
i番目のカラムストア表の列数
- page_size
-
データ用DBエリアのページサイズ(単位:バイト)
- COL_PAGE_NUM
-
変数COL_PAGE_NUMに代入する値は,データ用DBエリアのページサイズおよび1セグメントの容量によって決まります。次の表のデータ用DBエリアのページサイズおよび1セグメントの容量に対応する値を代入してください。
表5‒12 変数COL_PAGE_NUMに代入する値 項番
ページサイズ
(単位:キロバイト)
1セグメントの容量
(単位:メガバイト)
COL_PAGE_NUMの値
1
4
4
1,021
2
8
510
3
16
255
4
32
127
5
16
511
6
32
1,023
- COL_MAX_SIZE
-
i番目のカラムストア表の列データの最大データ長
次に示す計算式から求めてください。
例えば,i番目のカラムストア表にC1列,C2列,C3列が定義されている場合,次の計算をしてください。計算結果の最大値がCOL_MAX_SIZEの値になります。
-
COLUMNDATASIZE(1)×elm_num(1)
-
COLUMNDATASIZE(2)×elm_num(2)
-
COLUMNDATASIZE(3)×elm_num(3)
-
- COLUMNDATASIZE(s)
-
s列目の列データのデータ長(単位:バイト)
変数COLUMNDATASIZEに代入する値は,列データのデータ型によって異なります。次の表で該当する値を代入してください。
表5‒13 各列データのデータ型のデータ長の一覧 項番
分類
データ型
データ長(単位:バイト)
1
数データ
INTEGER
10
2
BIGINT
3
SMALLINT
6
4
DECIMAL(m,n)※
NUMERIC(m,n)※
m≦4
4
5
5≦m≦8
6
6
9≦m≦16
10
7
17≦m
18
8
DOUBLE PRECISION
10
9
FLOAT
10
文字データ
CHARACTER(n)
n≦127
11
128≦n
10
12
VARCHAR(n)
n≦127
13
128≦n≦255
128
14
256≦n
130
15
日時データ
DATE
6
16
TIME(p)
17
TIMESTAMP(p)
18
バイナリデータ
BINARY(n)
n≦127
19
128≦n
10
20
VARBINARY(n)
n≦127
21
128≦n≦255
128
22
256≦n
130
- (凡例)
-
m,n:正の整数
p:0,3,6,9または12
- 注※
-
全体の桁数がm桁で,小数点以下の桁数がn桁の固定小数点数を示します。mを省略した場合は38が仮定されます。
- elm_num(s)
-
s列目の配列要素数の平均値(単位:個)
s列目の列が配列型以外の列の場合は,1としてください。
- ROWDATASEGNUM(i,k)
-
i番目のカラムストア表の,k番目のチャンクのローデータ用セグメント数
次に示す計算式から求めてください。
- ROWDATAPGNUM(i,k)
-
i番目のカラムストア表の,k番目のチャンクのローデータ用セグメントのページ数
次に示す計算式から求めてください。
- row_num
-
i番目のカラムストア表の,k番目のチャンクに格納する行数
- page_size
-
データ用DBエリアのページサイズ(単位:バイト)
- var_num
-
分岐行として管理される列の列数(単位:個)
CHAR型,またはBINARY型の場合,定義長が128バイト以上の列の列数を求めてください。
VARCHAR型,またはVARBINARY型の場合,実長が128バイト以上のデータを含む列の列数を求めてください。
- var_size
-
分岐行の列のデータ長(単位:バイト)
変数var_sizeに代入する値は,データ型によって異なります。次の表で該当する値を代入してください。
表5‒14 変数var_sizeに代入する値 項番
分類
データ型
データ長(単位:バイト)
1
文字データ
CHAR
定義長
2
VARCHAR
d
3
バイナリデータ
BINARY
定義長
4
VARBINARY
d
- (凡例)
-
d:実際のデータ長
- COLUMNIZESEGNUM(i,k)
-
i番目のカラムストア表のk番目のチャンクに,更新行のカラム化機能のメンテナンス処理で格納されるカラムデータ用セグメント数
COLUMNIZESEGNUM(i,k)は,更新行のカラム化機能を有効にしている場合にだけ加算してください。なお,i番目のカラムストア表にB-treeインデクスを定義している場合は,0として見積もってください。
計算式を次に示します。
COLUMNIZESEGNUM(i,k)= COLUMNDATASEGNUM(i,k)
COLUMNDATASEGNUM(i,k)の求め方については,上記にある変数COLUMNDATASEGNUM(i,k)を参照してください。その際,変数row_numにはi番目のカラムストア表のk番目のチャンクで,INSERT文またはUPDATE文によって,追加または更新される行数を代入してください。
(h) 変数SGIDXおよびPGIDXの求め方(マルチチャンク表の場合)
変数SGIDXおよびPGIDXは,次に示す計算式から求めてください。
- SGIDX
-
データ用DBエリア内のB-treeインデクスページを管理するセグメント数
- PGIDX
-
データ用DBエリア内のB-treeインデクスページを管理するセグメントのページ数
- idx_num_in_dbarea
-
データ用DBエリア中のすべてのB-treeインデクス数(単位:個)
- chunk_num
-
作成されるアーカイブ状態ではないチャンク数(単位:個)
- CHIP_LOWER(i,k)
-
各チャンクのB-treeインデクスの下位ページ用のセグメントで使用するページ数
「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(1) 下位ページ用のセグメントで使用する格納ページ数(変数IP_LOWER(i))の求め方」を参照してください。
その際,対象のチャンクに-bオプションを指定したadbimportコマンド,INSERT文,およびUPDATE文で格納するデータ量から見積もった値を代入してください。
- CHIP_UPPER(i,k)
-
各チャンクのB-treeインデクスの上位ページ用のセグメントで使用するページ数
「5.8.3 B-treeインデクスのセグメントごとの格納ページ数の求め方」の「(2) 上位ページ用のセグメントで使用する格納ページ数(変数IP_UPPER(i))の求め方」を参照してください。
その際,対象のチャンクに-bオプションを指定したadbimportコマンド,INSERT文,およびUPDATE文で格納するデータ量から見積もった値を代入してください。
(i) 変数SGRIXの求め方(マルチチャンク表の場合)
次に示す計算式から求めてください。
|
- rng_num_in_dbarea
-
データ用DBエリア中のレンジインデクス数(単位:個)
- chunk_num
-
作成されるアーカイブ状態ではないチャンク数(単位:個)
- CHRS(i,k)
-
各チャンクのレンジインデクスを格納するために必要なセグメント数
対象のチャンクに-bオプションを指定したadbimportコマンド,INSERT文,およびUPDATE文で格納するデータ量から見積もった値を代入してください。
(j) 変数SGTIXの求め方(マルチチャンク表の場合)
次に示す計算式から求めてください。
|
- idx_num_in_dbarea
-
データ用DBエリア中のすべてのテキストインデクス数(単位:個)
- chunk_num
-
作成されるアーカイブ状態ではないチャンク数(単位:個)
- CHTIP_STRSEG(i,k)
-
各チャンクのテキストインデクスの文字列管理部用のセグメントで使用するページ数
「5.8.5 テキストインデクスのセグメントごとの格納ページ数の求め方」の「(1) 文字列管理部用のセグメントで使用する格納ページ数(変数TIP_STRSEG(i))の求め方」を参照してください。
その際,対象のチャンクに-bオプションを指定したadbimportコマンド,INSERT文,およびUPDATE文で格納するデータ量から見積もった値を代入してください。
- CHTIP_APPSEG(i,k)
-
各チャンクのテキストインデクスの出現情報管理部用のセグメントで使用するページ数
「5.8.5 テキストインデクスのセグメントごとの格納ページ数の求め方」の「(2) 出現情報管理部用のセグメントで使用する格納ページ数(変数TIP_APPSEG(i))の求め方」を参照してください。
その際,対象のチャンクに-bオプションを指定したadbimportコマンド,INSERT文,およびUPDATE文で格納するデータ量から見積もった値を代入してください。