5.12.1 システム表の容量見積もり
ここでは,次に示すシステム表の容量を見積もる方法について説明します。
-
STATUS_TABLES表
「(1) STATUS_TABLES表の容量見積もり」を参照して求めてください。
-
STATUS_COLUMNS表
「(2) STATUS_COLUMNS表の容量見積もり」を参照して求めてください。
-
STATUS_INDEXES表
「(3) STATUS_INDEXES表の容量見積もり」を参照して求めてください。
-
STATUS_CHUNKS表
「(4) STATUS_CHUNKS表の容量見積もり」を参照して求めてください。
-
STATUS_SYNONYM_DICTIONARIES表
「(5) STATUS_SYNONYM_DICTIONARIES表の容量見積もり」を参照して求めてください。
- 〈この項の構成〉
(1) STATUS_TABLES表の容量見積もり
STATUS_TABLES表の容量(STBLTABLESSIZE)は,次に示す計算式から求めてください。
なお,adbgetcstコマンドを実行しない場合は0を代入してください。
計算式(単位:キロバイト)
変数の説明
- COSTTBL_NUM
-
コスト情報を収集する表の数
- GETCOST_NUM
-
1つの表にadbgetcstコマンドを実行する回数
adbreorgsystemdataコマンドを実行してから再実行するまでの間に,adbgetcstコマンドを実行する回数を見積もってください。
adbreorgsystemdataコマンドを実行する間隔については,「11.18.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.18.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.18.2 システム表を再編成するタイミング」を参照してください。
次に示す表から,STATUS_SYNONYM_DICTIONARIES表に発生する無効な行データの行数を求めてください。その際,対象のコマンドを実行する回数も見積もってください。
表5‒23 コマンドとSTATUS_SYNONYM_DICTIONARIES表に発生する無効な行データの行数の関係 項番
実行するコマンド
STATUS_SYNONYM_DICTIONARIES表に発生する無効な行データの行数※
1
- adbsyndictコマンドの実行
-
同義語辞書を更新する場合が対象です。
更新した同義語辞書の数
2
- adbsyndictコマンドの実行
-
同義語辞書を削除する場合が対象です。
削除した同義語辞書の数
- 注※
-
左記の列「実行するコマンド」を1回実行した場合に,発生する無効な行データの行数です。複数回実行する場合は,その分だけ加算する必要があります。