Hitachi

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


5.12.1 システム表の容量見積もり

ここでは,次に示すシステム表の容量を見積もる方法について説明します。

〈この項の構成〉

(1) STATUS_TABLES表の容量見積もり

STATUS_TABLES表の容量(STBLTABLESSIZE)は,次に示す計算式から求めてください。

なお,adbgetcstコマンドを実行しない場合は0を代入してください。

計算式(単位:キロバイト)

[図データ]

変数の説明

COSTTBL_NUM

コスト情報を収集する表の数

GETCOST_NUM

1つの表にadbgetcstコマンドを実行する回数

adbreorgsystemdataコマンドを実行してから再実行するまでの間に,adbgetcstコマンドを実行する回数を見積もってください。

adbreorgsystemdataコマンドを実行する間隔については,「11.17.2 システム表を再編成するタイミング」を参照してください。

次の条件で運用する場合を例に説明します。

■運用の条件

  • 1日に1回,コスト情報を収集する

  • 6か月に1回,システム表(実表)の再編成を行う

■条件を基にした変数GETCOST_NUMの求め方

[図データ]

上記の条件で運用する場合,変数GETCOST_NUMには,186を代入してください。

ALTERTBL_NUM

ALTER TABLE文を使用して,表名を変更する回数

(2) STATUS_COLUMNS表の容量見積もり

STATUS_COLUMNS表の容量(STBLCOLUMNSSIZE)は,次に示す計算式から求めてください。

なお,adbgetcstコマンドを実行しない場合は0を代入してください。

計算式(単位:キロバイト)

[図データ]

変数の説明

COSTCOL_NUM

コスト情報を収集する表の列数を合計した値

例えば,コスト情報を収集する表Aの列数が10,表Bの列数が20の場合は,30となります。

GETCOST_NUM

(1) STATUS_TABLES表の容量見積もり」の変数GETCOST_NUMを参照してください。

ALTTBLCOL_NUM

ALTER TABLE文を使用して,表名を変更する表の列数を合計した値

例えば,表名を2回変更する表Cの列数が10,表名を1回変更する表Dの列数が20の場合は,次に示すとおり40となります。

10×2+20=40
ALTERCOL_NUM

ALTER TABLE文で列の名称を変更する回数

(3) STATUS_INDEXES表の容量見積もり

STATUS_INDEXES表の容量(STBLINDEXESSIZE)は,次に示す計算式から求めてください。

なお,adbgetcstコマンドを実行しない場合は0を代入してください。

計算式(単位:キロバイト)

[図データ]

変数の説明

COSTIDX_NUM

コスト情報を収集する表に定義されたインデクス数を合計した値

例えば,コスト情報を収集する表Aに定義されたインデクス数が2,表Bに定義されたインデクス数が1の場合は,3となります。

GETCOST_NUM

(1) STATUS_TABLES表の容量見積もり」の変数GETCOST_NUMを参照してください。

ALTTBLIDX_NUM

ALTER TABLE文を使用して,表名を変更する表に定義されたインデクス数を合計した値

例えば,表名を2回変更する表Cに定義されたインデクス数が2,表名を1回変更する表Dに定義されたインデクス数が1の場合は,次に示すとおり5となります。

2×2+1=5

(4) STATUS_CHUNKS表の容量見積もり

STATUS_CHUNKS表の容量(STBLCHUNKSSIZE)は,次に示す計算式から求めてください。

なお,マルチチャンク表を定義しない場合は0を代入してください。

計算式(単位:キロバイト)

[図データ]

変数の説明

CHUNK_COMMENT_SIZE

チャンクのコメントの平均データ長(単位:キロバイト)

STBLCHUNKS_ROWNUM

STATUS_CHUNKS表の行数

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

計算式

[図データ]

TOTAL_CHUNKNUM

運用中の各マルチチャンク表のチャンク数を合計した値

例えば,マルチチャンク表Aのチャンク数が700,マルチチャンク表Bのチャンク数が600の場合は,1,300となります。

STBLCHUNK_INVALID_ROWNUM

STATUS_CHUNKS表に発生する無効な行データの行数

adbreorgsystemdataコマンドを実行してから再実行するまでの間に,STATUS_CHUNKS表に発生する無効な行データの行数を見積もってください。計算式を次に示します。

計算式

[図データ]

reorg_period

adbreorgsystemdataコマンドを実行する間隔(単位:月)

例えば,6か月に1回,adbreorgsystemdataコマンドを実行する場合は,6を代入してください。

adbreorgsystemdataコマンドを実行する間隔については,「11.17.2 システム表を再編成するタイミング」を参照してください。

backgroundimport_table_num

バックグラウンドインポートを行うマルチチャンク表の数(単位:個数)

例えば,毎日5つのマルチチャンク表にバックグラウンドインポートを行う場合は,5を代入してください。

INVALID_ROW_NUM

1つのマルチチャンク表に対して,1か月の間に発生する無効な行データの数

マルチチャンク表に対して想定されるSQL文とコマンドの実行回数を見積もってください。そして,次に示す表から,発生する無効な行データの行数を求めてください。

表5‒22 SQL文やコマンドとSTATUS_CHUNKS表に発生する無効な行データの行数の関係

項番

マルチチャンク表に対して実行するSQL文とコマンド

STATUS_CHUNKS表に発生する無効な行データの行数※1

1

定義系SQLの実行

マルチチャンク表を削除する場合が対象です。

各削除対象表のチャンク数の総和

2

PURGE CHUNK文の実行

削除したチャンク数

3

TRUNCATE TABLE文の実行

処理対象表のチャンク数

4

adbimportコマンドの実行

作成モードで実行する場合が対象です。

処理対象表のチャンク数

5

adbimportコマンドの実行

バックグラウンドインポートで実行する場合が対象です。

1

6

adbidxrebuildコマンドの実行

adbimportコマンドによるバックグラウンドインポートが中断した場合が対象です。

1

7

adbmergechunkコマンドの実行

マージ対象のチャンク数×2※2

8

adbchgchunkcommentコマンドの実行

1

9

adbchgchunkstatusコマンドの実行

状態を変更するチャンク数

10

adbarchivechunkコマンドの実行

アーカイブするチャンク数

11

adbunarchivechunkコマンドの実行

アーカイブ状態を解除するチャンク数

注※1

左記の列「マルチチャンク表に対して実行するSQL文とコマンド」を1回実行した場合に,発生する無効な行データの行数です。複数回実行する場合は,その分だけ加算する必要があります。

注※2

次の理由でマージ元チャンクを削除できなかった場合は,無効な行データは発生しません。

・実行中のadbmergechunkコマンドが,マージ先チャンクの完成からマージ元チャンクの削除完了までの間に中断した場合

adbmergechunkコマンドの--purge-chunkオプションにNOWAITを指定して実行した場合に,マージチャンク対象の表を参照している処理が存在したとき

変数STBLCHUNK_INVALID_ROWNUM計算例

変数STBLCHUNK_INVALID_ROWNUMの求め方について,次に示す条件で運用する場合を例に説明します。

■運用の条件

  • 6か月に1回,システム表(実表)の再編成を行う

  • 10個のマルチチャンク表に対して,バックグラウンドインポートを行う

  • 5分に1回(1日で288回),バックグラウンドインポートを行う

  • バックグラウンドインポートで作成された288個のチャンクを,1日分のチャンクとしてマージする

  • 1日分のチャンク31個を,1か月分のチャンクとして,月末にマージする(1か月は31日と仮定する)

  • 2年以上経過した1か月分のチャンク1個を,月末に削除する

■条件を基にした変数STBLCHUNK_INVALID_ROWNUMの求め方

変数reorg_periodは,adbreorgsystemdataコマンドを実行する間隔であるため,6を代入してください。

変数backgroundimport_table_numは,バックグラウンドインポートを行うマルチチャンク表の数であるため,10を代入してください。

変数INVALID_ROW_NUMは,1つのマルチチャンク表に対して,1か月の間に発生する無効な行データの数であるため,次の計算式から求めます。

変数INVALID_ROW_NUMの計算式

[図データ]

変数INVALID_ROW_NUMには,26,847を代入してください。

各変数の値を代入して,変数STBLCHUNK_INVALID_ROWNUMを求めてください。6か月の間にSTATUS_CHUNKS表に発生する無効な行データの数は,1,610,820であると見積もることができます。

ALTTBLCNK_NUM

ALTER TABLE文を使用して,表名を変更するマルチチャンク表のチャンク数を合計した値

例えば,表名を2回変更するマルチチャンク表Cのチャンク数が700,表名を1回変更するマルチチャンク表Dのチャンク数が600の場合は,次に示すとおり2,000となります。

700×2+600=2,000

マルチチャンク表のチャンク数については,「付録C.9 システム表の検索」の「(3) 表名から表内の全チャンクの情報を調べる場合」を参照してください。SQL文の検索結果の行数が,マルチチャンク表のチャンク数になります。

(5) STATUS_SYNONYM_DICTIONARIES表の容量見積もり

STATUS_SYNONYM_DICTIONARIES表の容量(STBLSYNONYMDICSIZE)は,次に示す計算式から求めてください。

なお,同義語辞書を1つも作成しない場合は0を代入してください。

計算式(単位:キロバイト)

[図データ]

変数の説明

BINARY_PATH_SIZE

同義語辞書ファイルの格納ディレクトリのパス名のデータ長(単位:キロバイト)

SYNONYMDIC_COMMENT_SIZE

同義語辞書のコメントの平均データ長(単位:キロバイト)

SYNONYMDIC_NUM

作成する同義語辞書の数

SYNONYMDIC_INVALID_ROWNUM

STATUS_SYNONYM_DICTIONARIES表に発生する無効な行データの行数

adbreorgsystemdataコマンドを実行してから再実行するまでの間に,STATUS_SYNONYM_DICTIONARIES表に発生する無効な行データの行数を見積もってください。adbreorgsystemdataコマンドを実行する間隔については,「11.17.2 システム表を再編成するタイミング」を参照してください。

次に示す表から,STATUS_SYNONYM_DICTIONARIES表に発生する無効な行データの行数を求めてください。その際,対象のコマンドを実行する回数も見積もってください。

表5‒23 コマンドとSTATUS_SYNONYM_DICTIONARIES表に発生する無効な行データの行数の関係

項番

実行するコマンド

STATUS_SYNONYM_DICTIONARIES表に発生する無効な行データの行数

1

adbsyndictコマンドの実行

同義語辞書を更新する場合が対象です。

更新した同義語辞書の数

2

adbsyndictコマンドの実行

同義語辞書を削除する場合が対象です。

削除した同義語辞書の数

注※

左記の列「実行するコマンド」を1回実行した場合に,発生する無効な行データの行数です。複数回実行する場合は,その分だけ加算する必要があります。