CYCLIC構造のエントリに必要なデータベーススペースの見積りは、以下のように計算します。
(1) ユーザログレコード長 | 固定部 + 可変長データ制御部 + 可変長部 + NULL指示部 + 26 固定部 :固定長列の長さの総和 可変長データ制御部:可変長列の数 × 4 + 2 可変長部 :可変長列の長さの総和 NULL指示部 :対象実表のNOT NULL指定なしの列の数 |
(2) トランザクション情報レコード長 | 固定部 + 可変長データ制御部 + 可変長部 + NULL指示部 + 26 固定部 :固定長列の長さの総和 可変長データ制御部 :可変長列の数×4+2 可変長部 :可変長列の長さの総和 NULL指示部 :対象実表のNOT NULL指定なしの列の数 可変長部には、ユーザログ本文は含めません。 |
(3) 制御情報レコード長 | 固定部 + 可変長データ制御部 + NULL指示部 + 26 固定部 :固定長列の長さの総和 可変長データ制御部:可変長列の数 × 4 + 2 NULL指示部 :対象実表のNOT NULL指定なしの列の数 制御情報レコードには、可変長列の長さは加えません。 |
(4) ページ内格納域長 | ページ長 - 110 |
(5) ページ越えレコードの判断 | 「(4) ページ内格納域長≧(1)ユーザログレコード長」の場合は、(6)(7)を用いてスペース量を計算します。 「(4) ページ内格納域長<(1)ユーザログレコード長」の場合は、(8)(9)を用いてスペース量を計算します。 (2)トランザクション情報レコード、または(3)制御情報レコードについては、(6)(7)を用いてスペース量を計算します。 |
(6) ページ内レコード数 | トランザクション情報レコードのスペース量を求める場合は、(1)ユーザログレコード長を(2)トランザクション情報レコード長に置き換えてください。 制御情報レコードのスペース量を求める場合は、(1)ユーザログレコード長を(3)制御情報レコード長に置き換えてください。 |
(7) スペース量 | 安全率については、1.3以上を指定し、見積もります。 ユーザログレコードのスペース量 トランザクション情報レコードのスペース量 制御情報レコードのスペース量 |
(8) レコード格納に必要なページ数 | |
(9) スペース量 | {(8) レコード格納に必要なページ数 × 総レコード数(注) + CPU数 + 1} × ページ長 × 安全率 安全率については、1.3以上を指定し、見積もります。 |
(10) エントリスペース量 | ユーザログレコードのスペース量+トランザクション情報レコードのスペース量+制御情報レコードのスペース量 |
(11) 総スペース量 | (10)エントリスペース量 × エントリ数 |
注)総レコード数の目安は、以下のとおりです。
ユーザログレコード(1)の場合
並列して実行するトランザクションで取得する予定の総レコード数以上
トランザクション情報レコード(2)の場合
“並列して実行するトランザクションの総数以上”× 2
制御情報レコード(3)の場合
RDBシステムの起動・再起動数
CYCLIC構造のスペース量の見積りの例を示します。見積もる業務ログ表の構造は、以下のとおりです。
システム数:1 (起動・再起動をそれぞれ1回)
エントリあたりの並列実行するトランザクション数:64
1つのトランザクションで取得するレコード件数:100件
CPU数:1
所要スペース量:7エントリ
CREATE TABLE ULOG.業務ログ表 ( |
なお、以下の条件で計算します。
格納構造:CYCLIC構造
ページ長:32K
安全率 :1.3
ユーザログレコード長 =( LOG_TYPE + SEQUENCE_NO + TRANSACTION_ID + SYSTEM_NAME ) ユーザログレコードのページ内レコード数 ユーザログレコードのスペース量 トランザクション情報レコード長 トランザクション情報レコードのページ内レコード数 トランザクション情報レコードのスペース量 = ( トランザクション情報レコード数 / トランザクション情報レコードのページ内レコード数 + CPU数 + 1 ) 制御情報レコード長 = ( LOG_TYPE + SEQUENCE_NO + TRANSACTION_ID + SYSTEM_NAME ) 制御情報レコードのページ内レコード数 制御情報レコードのスペース量 総スペース量 = (ユーザログレコードのスペース量 |
注1) 可変長列の数は、CONTEXT_ID、ユーザログ本文の数
注2) 分割キーと任意列の列の長さは、以下の表を元に計算してください。
注3) 小数点切上げ
注4) スペース量をページ長の整数倍に補正
注5) 小数点切捨て
注6) 5は(128/29)を、1は(2/323)を、それぞれ小数点切上げで計算
列のデータ属性 | 長さ(バイト) | |
---|---|---|
固定長 | CHARACTER(n) | n |
NATIONAL CHARACTER(n) | n × 2 | |
NUMERIC(p,q) | j (注1) | |
DECIMAL(p,q) | j (注1) | |
SMALLINT | 2 | |
INTEGER | 4 | |
TIMESTAMP | 7 | |
DATE | 4 | |
TIME | 3 | |
INTERVAL YEAR(p) | m (注2) | |
INTERVAL MONTH(p) | m (注2) | |
INTERVAL DAY(p) | m (注2) | |
INTERVAL HOUR(p) | m (注2) | |
INTERVAL MINUTE(p) | m (注2) | |
INTERVAL SECOND(p) | m (注2) | |
可変長 | CHARACTER VARYING(n) | a (注3) |
NATIONAL CHARACTER VARYING(n) | a × 2 (注3) | |
BLOB(nk) | b × 1024 + 6(注4) |
注1) jはpの値に依存して以下の値になります。
pの値(精度) | j |
---|---|
1 ~ 2 | 1 |
3 ~ 4 | 2 |
5 ~ 6 | 3 |
7 ~ 9 | 4 |
10 ~11 | 5 |
12 ~14 | 6 |
15 ~16 | 7 |
17 ~18 | 8 |
注2) mはpの値に依存して以下の値になります。
pの値 | m |
---|---|
1 ~2 | 2 |
3 ~4 | 3 |
5 ~9 | 5 |
注3) aは平均文字数です。最大n文字となります。
注4) bは平均データ長(バイト)です。最大nキロバイトとなります。