Hitachi

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


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

SEGSIZE

セグメントサイズ(単位:ページ数)

次に示す計算式から求めてください。

SEGSIZE1セグメントの容量(単位:バイト)÷page_size
SGDATA

データ用DBエリアのセグメント数

次に示す計算式から求めてください。

[図データ]

なお,変数SGROWTBLSGCOLUMNTBLSGIDXSGRIX,およびSGTIXは,シングルチャンク表とマルチチャンク表で求め方が異なります。また,1つのデータ用DBエリア内に,シングルチャンク表とマルチチャンク表の両方を格納する場合,それぞれの変数SGROWTBLSGCOLUMNTBLSGIDXSGRIX,およびSGTIXを求めて,すべて合計する必要があります。変数SGROWTBLSGCOLUMNTBLSGIDXSGRIX,およびSGTIXの求め方を次に示します。

■シングルチャンク表の場合

SGROWTBL(シングルチャンク表の場合)

データ用DBエリア内のローストア表のデータページを管理するセグメント数

(a) 変数SGROWTBLの求め方(シングルチャンク表の場合)」を参照してください。

SGCOLUMNTBL(シングルチャンク表の場合)

データ用DBエリア内のカラムストア表のデータページを管理するセグメント数

(b) 変数SGCOLUMNTBLの求め方(シングルチャンク表の場合)」を参照してください。

SGIDX(シングルチャンク表の場合)

データ用DBエリア内のB-treeインデクスページを管理するセグメント数

(c) 変数SGIDXの求め方(シングルチャンク表の場合)」を参照してください。

SGRIX(シングルチャンク表の場合)

データ用DBエリア内のレンジインデクスページを管理するセグメント数

(d) 変数SGRIXの求め方(シングルチャンク表の場合)」を参照してください。

SGTIX(シングルチャンク表の場合)

データ用DBエリア内のテキストインデクスページを管理するセグメント数

(e) 変数SGTIXの求め方(シングルチャンク表の場合)」を参照してください。

■マルチチャンク表の場合

SGROWTBL(マルチチャンク表の場合)

データ用DBエリア内のローストア表のデータページを管理するセグメント数

(f) 変数SGROWTBLの求め方(マルチチャンク表の場合)」を参照してください。

SGCOLUMNTBL(マルチチャンク表の場合)

データ用DBエリア内のカラムストア表のデータページを管理するセグメント数

(g) 変数SGCOLUMNTBLの求め方(マルチチャンク表の場合)」を参照してください。

SGIDX(マルチチャンク表の場合)

データ用DBエリア内のB-treeインデクスページを管理するセグメント数

(h) 変数SGIDXの求め方(マルチチャンク表の場合)」を参照してください。

SGRIX(マルチチャンク表の場合)

データ用DBエリア内のレンジインデクスページを管理するセグメント数

(i) 変数SGRIXの求め方(マルチチャンク表の場合)」を参照してください。

SGTIX(マルチチャンク表の場合)

データ用DBエリア内のテキストインデクスページを管理するセグメント数

(j) 変数SGTIXの求め方(マルチチャンク表の場合)」を参照してください。

(a) 変数SGROWTBLの求め方(シングルチャンク表の場合)

次に示す計算式から求めてください。

[図データ]

row_tbl_num_in_dbarea

データ用DBエリア中のすべての表数(単位:個)

BP(i)

各表を格納するために必要な基本行用ページ数

5.8.2 行の種別ごとの格納ページ数の求め方」の「(1) 基本行用ページ数(変数BP(i))の求め方」を参照してください。

VP(i)

各表を格納するために必要な分岐行用ページ数

5.8.2 行の種別ごとの格納ページ数の求め方」の「(2) 分岐行用ページ数(変数VP(i))の求め方」を参照してください。

(b) 変数SGCOLUMNTBLの求め方(シングルチャンク表の場合)

カラムストア表にはデータが圧縮されて格納されるため,ローストア表のようにレコード長から順に見積もり式を計算していくことができません。そのため,実際に少量のデータを格納し,その圧縮率を基にセグメント数を見積もります。

次に示す計算式から求めてください。

[図データ]

column_tbl_num_in_dbarea

データ用DBエリア中のすべてのカラムストア表の数(単位:個)

SEGSIZE

セグメントサイズ(単位:ページ数)

次に示す計算式から求めてください。

SEGSIZE1セグメントの容量(単位:バイト)÷page_size
COLUMNTBLSIZE(i)

i番目のカラムストア表のデータサイズ(単位:メガバイト)

次に示す計算式から求めてください。

COLUMNTBLSIZE(i)IMPORTDATASIZE(i)×COMPRESSION_RATECOLUMNIZESIZE(i)
IMPORTDATASIZE(i)

i番目のカラムストア表に格納する元データ(CSVファイル)のサイズ(単位:メガバイト)

COMPRESSION_RATE

元データの圧縮率

i番目のカラムストア表に格納する元データの一部をadbimportコマンドで格納してください。そのあと,次に示す計算式から求めてください。

[図データ]

testdbsize

元データの一部をadbimportコマンドでインポートした際の,データベースの使用量(単位:メガバイト)

計算式を求めるためにインポートする元データの一部には,100~500メガバイト程度の実データに近いデータを用意することを推奨します。adbimportコマンドを実行するときは,インポートオプションadb_import_rthd_num2を指定してください。

adbimportコマンド実行後に,adbdbstatusコマンドで,表のサマリ情報に含まれるUsed_segments(表の使用中セグメント数)をメガバイト単位で出力してください。そして,データベースの使用量を確認してください。

adbimportコマンドおよびadbdbstatusコマンドについては,マニュアルHADB コマンドリファレンスを参照してください。

testcsvsize

adbimportコマンドでインポートした元データの一部のCSVファイルのサイズ(単位:メガバイト)

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については,すべての列で圧縮方式に無圧縮(NONEが選択された場合を仮定し,そのサイズを求めることで見積もり値を求めることもできます。ただし,選択された圧縮方式や圧縮率によっては,実際に格納した場合のサイズに比べて見積もり値が大きくなることがあります。

すべての列で圧縮方式に無圧縮(NONEが選択された場合の見積もり値は,次に示す計算式から求めてください。

[図データ]

COLUMNDATASEGNUM(i)

i番目のカラムストア表のカラムデータ用セグメント数

次に示す計算式から求めてください。

[図データ]

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

SMALLINT

6

3

DECIMAL(m,n)

NUMERIC(m,n)

m≦4

4

4

5≦m≦8

6

5

9≦m≦16

10

6

17≦m

18

7

DOUBLE PRECISION

10

8

FLOAT

9

文字データ

CHARACTER(n)

n≦127

[図データ]

10

128≦n

10

11

VARCHAR(n)

n≦127

[図データ]

12

128≦n≦255

128

13

256≦n

130

14

日時データ

DATE

6

15

TIME(p)

[図データ]

16

TIMESTAMP(p)

[図データ]

17

バイナリデータ

BINARY(n)

n≦127

[図データ]

18

128≦n

10

19

VARBINARY(n)

n≦127

[図データ]

20

128≦n≦255

128

21

256≦n

130

(凡例)

mn:正の整数

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

注※

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

elm_num(k)

k列目の配列要素数の平均値(単位:個)

k列目の列が配列型以外の列の場合は,1としてください。

ROWDATASEGNUM(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の求め方(シングルチャンク表の場合)

次に示す計算式から求めてください。

[図データ]

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の求め方(マルチチャンク表の場合)

次に示す計算式から求めてください。

[図データ]

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

SMALLINT

94

3

DECIMAL(m,n)

NUMERIC(m,n)

1≦m≦4

90

4

5≦m≦8

94

5

9≦m≦16

102

6

17≦m≦38

118

7

DOUBLE PRECISION

102

8

FLOAT

9

CHARCTER(p)

88+2×p

10

DATE

94

11

TIME

104

12

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

SMALLINT

8

4

DECIMAL(m,n)

NUMERIC(m,n)

1≦m≦4

4

5

5≦m≦8

8

6

9≦m≦16

16

7

17≦m≦38

32

8

DOUBLE PRECISION

16

9

FLOAT

10

CHARACTER(p)

p

11

DATE

8

12

TIME

18

13

TIMESTAMP

26

14

見積もり対象の変数は次のとおりです。

  • LIRNG02P_LOWER(i)

  • LIRNG02P_UPPER(i)

INTEGER

8

15

SMALLINT

4

16

DECIMAL(m,n)

NUMERIC(m,n)

1≦m≦4

2

17

5≦m≦8

4

18

9≦m≦16

8

19

17≦m≦38

16

20

DOUBLE PRECISION

8

21

FLOAT

22

CHARACTER(p)

p

23

DATE

4

24

TIME

9

25

TIMESTAMP

13

(凡例)

−:該当しません。

m:精度

n:位取り

p:文字列の長さ(単位:バイト)

(g) 変数SGCOLUMNTBLの求め方(マルチチャンク表の場合)

カラムストア表にはデータが圧縮されて格納されるため,ローストア表のようにレコード長から順に見積もり式を計算していくことができません。そのため,実際に少量のデータを格納し,その圧縮率を基にセグメント数を見積もります。

次に示す計算式から求めてください。

[図データ]

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_num2を指定してください。

adbimportコマンド実行後に,adbdbstatusコマンドで,表のサマリ情報に含まれるUsed_segments(表の使用中セグメント数)をメガバイト単位で出力してください。そして,データベースの使用量を確認してください。

adbimportコマンドおよびadbdbstatusコマンドについては,マニュアルHADB コマンドリファレンスを参照してください。

testcsvsize

adbimportコマンドでインポートした元データの一部のCSVファイルのサイズ(単位:メガバイト)

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

セグメントサイズ(単位:ページ数)

次に示す計算式から求めてください。

SEGSIZE1セグメントの容量(単位:バイト)÷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については,すべての列で圧縮方式に無圧縮(NONEが選択された場合を仮定し,そのサイズを求めることで見積もり値を求めることもできます。ただし,選択された圧縮方式や圧縮率によっては,実際に格納した場合のサイズに比べて見積もり値が大きくなることがあります。

すべての列で圧縮方式に無圧縮(NONEが選択された場合の見積もり値は,次に示す計算式から求めてください。

[図データ]

COLUMNTBLSEGNUM(i)

i番目のカラムストア表のセグメント数

次に示す計算式から求めてください。

[図データ]

COLUMNDATASEGNUM(i,k)

i番目のカラムストア表の,k番目のチャンクのカラムデータ用セグメント数

次に示す計算式から求めてください。

[図データ]

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

SMALLINT

6

3

DECIMAL(m,n)

NUMERIC(m,n)

m≦4

4

4

5≦m≦8

6

5

9≦m≦16

10

6

17≦m

18

7

DOUBLE PRECISION

10

8

FLOAT

9

文字データ

CHARACTER(n)

n≦127

[図データ]

10

128≦n

10

11

VARCHAR(n)

n≦127

[図データ]

12

128≦n≦255

128

13

256≦n

130

14

日時データ

DATE

6

15

TIME(p)

[図データ]

16

TIMESTAMP(p)

[図データ]

17

バイナリデータ

BINARY(n)

n≦127

[図データ]

18

128≦n

10

19

VARBINARY(n)

n≦127

[図データ]

20

128≦n≦255

128

21

256≦n

130

(凡例)

mn:正の整数

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

注※

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

elm_num(s)

s列目の配列要素数の平均値(単位:個)

s列目の列が配列型以外の列の場合は,1としてください。

ROWDATASEGNUM(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の求め方(マルチチャンク表の場合)

次に示す計算式から求めてください。

[図データ]

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文で格納するデータ量から見積もった値を代入してください。