付録C.4 表定義情報用バッファ長(pd_table_def_cache_size)の見積もり式

<この項の構成>
(1) 計算式で使用する変数
(2) 1表当たりの表定義情報バッファサイズ(単位:キロバイト)
(3) 表定義キャッシュサイズの求め方

(1) 計算式で使用する変数

a:ディクショナリ表(SQL_TABLES表)のDEFINITION_CACHE_SIZEの値(単位:バイト)
DEFINITION_CACHE_SIZEの値が分からない場合は,「(3)表定義キャッシュサイズの求め方」を参照してください。
b:表の列数
追い付き状態管理表の場合は8を代入してください。
c:表のインデクス数
追い付き状態管理表の場合は1を代入してください。
d:表分割条件数
追い付き状態管理表の場合はpdorcreateコマンドの-rオプション,及び-oオプションに指定したRDエリアが属するサーバ数を代入してください。
e:表格納RDエリア数
追い付き状態管理表の場合はpdorcreateコマンドの-rオプションに指定したRDエリア数+1を代入してください。
f:インデクス格納RDエリア数
追い付き状態管理表の場合はpdorcreateコマンドの-rオプションに指定したRDエリア数+1を代入してください。
g:BLOB列数
h:BLOB属性を含む抽象データ型数
i:抽象データ型中のBLOB属性の総数
j:抽象データ型数
k:プラグインオプション数
n:インデクス除外キー値数
p:ディクショナリ表(SQL_TABLES表)のSTATISTICS_CACHE_SIZEの値(単位:バイト)
pdgetcstコマンドで表の最適化情報を取得した場合に加算します。単位がバイトなのでキロバイトに変換して代入してください。STATISTICS_CACHE_SIZEの値が分からない場合は次に示す計算式で求めます。
(2.6×q1+3.0×q2+0.04×c+0.02)×1024(単位:バイト)
1:列のデータ型がDECIMAL型以外の列最適化情報数,及び精度31けたまでのDECIMAL型の列最適化情報数の合計
2:列のデータが精度32けた以上のDECIMAL型の列最適化情報数
r:CREATE TABLEのDEFAULTオペランドの指定列数
s:CREATE TABLEのDEFAULTオペランドに指定する既定値長の合計値(単位:バイト)
既定値を指定するすべての列数分加算します。既定値長を長く変更することがある場合は,変更後の長さを加算してください。
t:パブリックビュー表の表名と同じ表識別子を所有する認可識別子数
u:表に定義しているトリガ数
v:新旧値相関名で修飾して使用している列数
w:トリガ動作条件数
x:トリガ動作条件の総解析ツリー長(単位:バイト)
トリガ動作条件の解析ツリー長の見積もり式については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」の「通常のデータディクショナリ用RDエリアの容量の見積もり」を参照してください。
y:UPDATEトリガのトリガ契機列数
z:表に定義している外部キー数
aa:表の主キーを参照している外部キー数
ab:表に定義している検査制約数
ac:検査制約用解析ツリーの合計長(単位:バイト)
検査制約用解析ツリー長の見積もり式については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」の「通常のデータディクショナリ用RDエリアの容量の見積もり」を参照してください。
ad:インデクス構成部分構造パス数
ae:該当するインデクスの部分構造パスの合計長
af:該当するインデクスの部分構造パス用解析ツリーの合計長(単位:バイト)
部分構造パス用解析ツリー長の見積もり式については,マニュアル「HiRDB Version 8 システム導入・設計ガイド」の「通常のデータディクショナリ用RDエリアの容量の見積もり」を参照してください。

(2) 1表当たりの表定義情報バッファサイズ(単位:キロバイト)

1表当たりの表定義情報バッファサイズは,次に示す概算式で求めてください。なお,ビュー表の場合は,ビュー表の基となる実表又は外部表についても計算してください。

表の種類1表当たりの表定義情報バッファサイズ
の計算式(単位:キロバイト)
1実表又は1外部表の表定義情報バッファサイズ↓(4+↑a÷1024↑+0.01×b+↑p÷1024↑+7)÷8↓×8
1ビュー表の表定義情報バッファサイズ↓(4+↑a÷1024↑+0.01×b+7)÷8↓×8
追い付き状態管理表(HiRDB Staticizer Option)の表定義情報バッファサイズ↓(4+↑a÷1024↑+0.01×8+7)÷8↓×8

(3) 表定義キャッシュサイズの求め方

(a) DEFINITION_CACHE_SIZEの値が分からない場合

次のどれかに該当する場合は,ディクショナリ表を検索してもDEFINITION_CACHE_SIZEの値が分かりません。

注※1
この場合,DEFINITION_CACHE_SIZEに正しい値が入っていません。
注※2
32ビットモードから64ビットモードに移行した表であるかどうかは,pdvrupコマンドの実行時間と表の作成時間を比較してください。表の作成時間の方が古い表が,32ビットモードから64ビットモードに移行した表です。pdvrupコマンドの実行時間は,ディクショナリ表(SQL_TABLES表)のMASTER.SQL_TABLESのCHANGE_TIMEで分かります。表の作成時間は,ディクショナリ表(SQL_TABLES表)の作成した表のCREATE_TIMEで分かります。これらの列は,次に示すSQLで検索できます。
  • pdvrupコマンド実行時間

   select CHANGE_TIME from MASTER.SQL_TABLES where
       TABLE_SCHEMA='MASTER' and TABLE_NAME='SQL_TABLES'

  • 表の作成時間

   select CREATE_TIME from MASTER.SQL_TABLES where
       TABLE_SCHEMA='認可識別子' and TABLE_NAME='表名'

(b) 表定義キャッシュサイズの計算式

表定義キャッシュサイズは次に示す計算式で求めてください。