14.2.4 各サーバが使用する共用メモリの計算式
- 〈この項の構成〉
(1) フロントエンドサーバが使用する共用メモリの計算式
フロントエンドサーバが使用する共用メモリの計算式を次に示します。計算式で使用している変数については,「計算式で使用する変数」を参照してください。
- ●32ビットモードの場合
40+b×1.3+c+d+k+1.6+x+y+4 +{[(a+12)÷13]×1.1+[(a+62)÷63]+3.7}×(e+3) +{ ↑↑b÷64↑×(8÷16)↑×4×4 +12×{(b÷3)+1−mod(b÷3,2)} +4×a×{(e+3)×2+1+MAX(e÷10,5)} +32+4+16+{56×(f+1)×g}+20000 +↑{(c÷8)+7}÷64↑×8+↑{(k÷8)+7}÷64↑×8 +MAX{a×(e+3),c÷8}×104+MAX{a×(e+3),k÷8}×24 +↑{(x÷4)+7}÷64↑×8 +↑{[(y−(s×592+t×916+u×172))÷2]+7}÷64↑×8 +MAX{13×(e+3),x÷4}×88 +60×MAX{21×(e+3),(y−(s×592+t×916+u×172))÷2} +44+256+1024 }÷1024+A+7 I +Σ(Ji) i=1 +6.5×1024×f +1024 ●pd_def_buf_control_area_assignオペランドにINITIALを指定するか,又はこのオペランドを省略した場合に加算します。 +{[(a+12)÷13]×1.1+[(a+62)÷63]+3.7}×(e+7) (単位:キロバイト)
- ●64ビットモードの場合
40+b×1.3+c+d+k+1.6+x+y+5 +{[(a+12)÷13]×1.2+[(a+62)÷63]×1.5+4.1}×(e+3) +{ ↑↑b÷64↑×(8÷16)↑×4×4 +12×{(b÷3)+1−mod(b÷3,2)} +4×a×{(e+3)×2+1+MAX(e÷10,5)} +48+8+16+{72×(f+1)×g}+20000 +↑{(c÷8)+7}÷64↑×8+↑{(k÷8)+7}÷64↑×8 +MAX{a×(e+3),c÷8}×104+MAX{a×(e+3),k÷8}×40 +↑{(x÷4)+7}÷64↑×8 +↑{[(y−(s×600+t×936+u×184))÷2]+7}÷64↑×8 +MAX{13×(e+3),x÷4}×104 +72×MAX{21×(e+3),(y−(s×600+t×936+u×184))÷2} +72+256+1536 }÷1024+A+7 I +Σ(Ji) i=1 +6.5×1024×f +1024 ●pd_def_buf_control_area_assignオペランドにINITIALを指定するか,又はこのオペランドを省略した場合に加算します。 +{[(a+12)÷13]×1.2+[(a+62)÷63]×1.5+4.1}×(e+7) (単位:キロバイト)
(2) ディクショナリサーバが使用する共用メモリの計算式
ディクショナリサーバが使用する共用メモリの計算式を次に示します。
- 32ビットモードの場合(単位:キロバイト)
-
計算式1+↑{(↑(40+(計算式2〜計算式5を加算した値))÷512↑×512)}÷1024↑
- 64ビットモードの場合(単位:キロバイト)
-
計算式1+↑{(↑(72+(計算式2〜計算式5を加算した値))÷512↑×512)}÷1024↑
計算式で使用している変数については,「計算式で使用する変数」を参照してください。
- 注意事項
-
-
pd_dbsync_point又はpd_system_dbsync_pointオペランドのどちらかの指定がcommitの場合に計算式3を加算します。pd_system_dbsync_pointオペランドの省略値はcommitです。
上記以外の場合,計算式5を加算します。
-
pd_dfw_awt_processオペランドを指定する場合に計算式4を加算します。
-
pd_dic_shmpool_sizeオペランドを省略すると,次の値が設定されます。
32ビットモードの場合:
↑{(↑(40+(計算式2〜計算式5の合計値))÷512↑×512)}÷1024↑
64ビットモードの場合:
↑{(↑(72+(計算式2〜計算式5の合計値))÷512↑×512)}÷1024↑
条件
共用メモリの計算式
計算式1
(単位:キロバイト)
●32ビットモードの場合
b×1.3
+{
↑↑b÷64↑×(8÷16)↑×4×4
+12×{(b÷3)+1−mod(b÷3,2)}
+8×a×{(e+3)×2+1+MAX(e÷10,5)}
+512
}÷1024
+3.5+↑(224×v×w)÷1024↑+0.5
+↑{
↑(28+(↑(32+((↑g÷127↑+1)×2048+128))÷32↑×32))
÷128↑×128
}÷1024↑
K
+Σ(Li)
i=1
●64ビットモードの場合
b×1.3
+{
↑↑b÷64↑×(8÷16)↑×4×4
+12×{(b÷3)+1−mod(b÷3,2)}
+8×a×{(e+3)×2+1+MAX(e÷10,5)}
+1024
}÷1024
+3.5+↑(224×v×w)÷1024↑+0.5
+↑{
↑(56+(↑(56+((↑g÷127↑+1)×2048+128))÷32↑×32))
÷128↑×128
}÷1024↑
K
+Σ(Li)
i=1
計算式2
(単位:バイト)
●32ビットモードの場合
500×1024
+(↑436×g÷16↑×16)+496×h+112×240
+5072×(e+15)+96×z
+32×m+172×{a×(e+3)+(e+3)×2+22}+16
+48×p+36×{(e+3)×2+1+MAX(5,[e+3]÷10)}
+68×G+152×120+80+64※1+368※2
+((↓(↑(g÷8)↑+3)÷4↓)×4)×m
●64ビットモードの場合
500×1024
+(↑536×g÷16↑×16)+512×h
+(↑136×240÷16↑×16)
+9424×(e+15)+144×z
+48×m+336×{a×(e+3)+(e+3)×2+22}+16
+64×p+72×{(e+3)×2+1+MAX(5,[e+3]÷10)}
+68×G+184×120+96+64※1+448※2
+((↓(↑(g÷8)↑+7)÷8↓)×8)×m
計算式3
(単位:バイト)
●32ビットモードの場合
(32+16×z)×(G+1)+16
●64ビットモードの場合
(48+32×z)×(G+1)+16
計算式4
(単位:バイト)
●32ビットモードの場合
72+52×H+68×z
pd_dbbuff_trace_levelオペランドに1を指定する場合に加算します。
+320×z
●64ビットモードの場合
96+56×H+72×z
pd_dbbuff_trace_levelオペランドに1を指定する場合に加算します。
+640×z
計算式5
(単位:バイト)
●32ビットモードの場合
(32+16×z)×10+16
●64ビットモードの場合
(48+32×z)×10+16
-
- 注※1
-
pd_max_ard_processオペランドが1以上の場合に加算します。
- 注※2
-
再編成時期予測機能を使用する場合に加算します。
(3) バックエンドサーバが使用する共用メモリの計算式
バックエンドサーバが使用する共用メモリの計算式を次に示します。
- 32ビットモードの場合(単位:キロバイト)
-
計算式1+↑{(↑(40+(計算式2〜計算式7を加算した値))÷512↑×512)}÷1024↑
- 64ビットモードの場合(単位:キロバイト)
-
計算式1+↑{(↑(72+(計算式2〜計算式9を加算した値))÷512↑×512)}÷1024↑
計算式で使用している変数については,「計算式で使用する変数」を参照してください。
- 計算式1〜9についての注意事項
-
-
次に示すどれかの条件を満たす場合に計算式3を加算します。
・pd_rdarea_open_attribute_useオペランドにYを指定する場合
・pd_lv_mirror_useオペランドにYを指定する場合
・高速系切り替え機能を使用する場合
-
次に示すどれかの条件を満たす場合に計算式4を加算します。
・pd_dbsync_pointオペランドにcommitを指定する場合
・pd_shared_rdarea_useオペランドにYを指定する場合
・上記以外の場合,計算式7を加算します。
-
pd_inner_replica_controlオペランドを指定する場合に計算式5を加算します。
-
pd_dfw_awt_processオペランドを指定する場合に計算式6を加算します。
-
pd_bes_shmpool_sizeオペランドを省略すると,次の値が設定されます。
32ビットモードの場合:
↑{(↑(40+(計算式2〜計算式7の合計値))÷512↑×512)}÷1024↑
64ビットモードの場合:
↑{(↑(72+(計算式2〜計算式9の合計値))÷512↑×512)}÷1024↑
-
pd_max_resident_rdarea_noオペランドを指定する場合に計算式8を加算します。
-
pd_max_temporary_object_noの値が1以上の場合に計算式9を加算します。
条件
共用メモリの計算式
計算式1
(単位:キロバイト)
●32ビットモードの場合
b×1.3
+{
↑↑b÷64↑×(8÷16)↑×4×4
+12×{(b÷3)+1−mod(b÷3,2)}
+8×a×{(e+3)×2+1+MAX(e÷10,5)}+512+512※1
}÷1024
+↑{72+8×v×(8+3×w)}÷1024↑
+↑{(↑g÷127↑+1)×2048+128}÷1024↑
+↑{
↑(28+(↑(32+((↑g÷127↑+1)×2048+128))÷32↑×32))
÷128↑×128}
}÷1024↑
M
+Σ(Ni)
i=1
●64ビットモードの場合
b×1.3
+{
↑↑b÷64↑×(8÷16)↑×4×4
+12×{(b÷3)+1−mod(b÷3,2)}
+8×a×{(e+3)×2+1+MAX(e÷10,5)}+1024+512※1
}÷1024
+↑{72+24×v×(2+w)}÷1024↑
+↑{
↑(56+(↑(56+((↑g÷127↑+1)×2048+128))÷32↑×32))
÷128↑×128
}÷1024↑
M
+Σ(Ni)
i=1
計算式2
(単位:バイト)
●32ビットモードの場合
500×1024
+(436+48※1)×g+496×h+112×r
+5072×(e+15)+96×z
+32×m+172×{a×(e+3)+(e+3)×2+22}+16
+48×p+48×{(e+3)×2+1+MAX(5,[e+3]÷10)}
+68×G+152×F+80+32×g+64※2+96※3
+((↓(↑(g÷8)↑+3)÷4↓)×4)×m
●64ビットモードの場合
500×1024
+(536+56※1)×g+512×h+136×r
+9424×(e+15)+144×z
+48×m+336×{a×(e+3)+(e+3)×2+22}+16
+64×p+96×{(e+3)×2+1+MAX(5,[e+3]÷10)}
+68×G+184×F+96+48×g+64※2+128※3
+((↓(↑(g÷8)↑+7)÷8↓)×8)×m
計算式3
(単位:バイト)
●32ビットモードの場合
{{[(↑↑g÷8↑÷4↑)×4]+8}×(a×[e+3]+e+15)}
●64ビットモードの場合
{{[(↑↑g÷8↑÷8↑)×8]+8}×(a×[e+3]+e+15)}
計算式4
(単位:バイト)
●32ビットモードの場合
(32+16×z)×(e×2+7+1)+16
●64ビットモードの場合
(48+32×z)×(e×2+7+1)+16
計算式5
(単位:バイト)
56×E+16
計算式6
(単位:バイト)
●32ビットモードの場合
72+52×H+68×z
pd_dbbuff_trace_levelオペランドに1を指定する場合に加算します。
+320×z
●64ビットモードの場合
96+56×H+72×z
pd_dbbuff_trace_levelオペランドに1を指定する場合に加算します。
+640×z
計算式7
(単位:バイト)
●32ビットモードの場合
(32+16×z)×10+16
●64ビットモードの場合
(48+32×z)×10+16
計算式8
(単位:バイト)
16+112+(48+48×Q)+ (48+32×R)
計算式9
(単位:バイト)
16+80×S
-
- 注※1
-
pd_max_list_users及びpd_max_list_countオペランドの両方とも0でない場合に加算します。
- 注※2
-
pd_max_ard_processオペランドが1以上の場合に加算します。
- 注※3
-
pd_max_reflect_process_countオペランドに1以上を指定した場合に加算します。
(4) 計算式で使用する変数
a:pd_max_access_tablesオペランドの値
b:pd_sql_object_cache_sizeオペランドの値
c:pd_table_def_cache_sizeオペランドの値
d:pd_auth_cache_sizeオペランドの値
e:pd_max_usersオペランドの値 ※1
f:バックエンドサーバの総数
g:pd_max_rdarea_noオペランドの値
h:pd_max_file_noオペランドの値
k:pd_view_def_cache_sizeオペランドの値
- m:インデクス用のグローバルバッファプール数
-
pd_dbbuff_modifyオペランドにYを指定している場合,該当するサーバに関連するpdbuffer文の数に,該当するサーバ定義のpd_max_add_dbbuff_noオペランドの値を加算して計算します。
p:pd_lck_until_disconnect_cntオペランドの値
q:MIN(e+3,p)
r:pd_assurance_index_noオペランドの値
s:インストールしたプラグインの数
t:DMLで使用するプラグイン関数の総数 ※2
u:DMLで使用するプラグイン関数のパラメタ総数 ※2
v:pd_max_list_usersオペランドの値
w:pd_max_list_countオペランドの値
x:pd_type_def_cache_sizeオペランドの値
y:pd_routine_def_cache_sizeオペランドの値
- z:グローバルバッファ総数(pdbufferオペランドの指定数)
-
pd_dbbuff_modifyオペランドにYを指定している場合,該当するサーバに関連するpdbuffer文の数に,該当するサーバ定義のpd_max_add_dbbuff_noオペランドの値を加算して計算します。
A:pd_registry_cache_sizeオペランドの値
E:pd_inner_replica_controlオペランドの値
F:pd_assurance_table_noオペランドの値
G:サーバ内の最大トランザクション数(2×e+7)
H:pd_dfw_awt_processオペランドの値
I:フロントエンドサーバで指定したpdplgprmオペランドの総数
Ji:フロントエンドサーバで指定したi番目のpdplgprmオペランドで指定した共用メモリのサイズ
K:ディクショナリサーバで指定したpdplgprmオペランドの総数
Li:ディクショナリサーバで指定したi番目のpdplgprmオペランドで指定した共用メモリのサイズ
M:バックエンドサーバで指定したpdplgprmオペランドの総数
Ni:バックエンドサーバで指定したi番目のpdplgprmオペランドで指定した共用メモリのサイズ
Q:pd_max_resident_rdarea_noオペランドの値
R:pd_max_resident_rdarea_shm_noオペランドの値
S:pd_max_temporary_object_noオペランドの値
U:空き領域の再利用機能を使用する表数
- 注※1
-
ディクショナリサーバの場合はpd_max_dic_processオペランドの値となります。バックエンドサーバの場合はpd_max_bes_processオペランドの値となります。ただし,pd_max_dic_process又はpd_max_bes_processオペランドを省略する場合は,pd_max_usersオペランドの値となります。
- 注※2
-
DMLで使用するプラグイン関数の総数及びDMLで使用するプラグイン関数のパラメタの総数は,次に示すSQLで求められます。
SELECT COUNT(*),SUM(N_PARAM) FROM MASTER.SQL_PLUGIN_ROUTINES WHERE PLUGIN_NAME = 'プラグイン名称' AND (TIMING_DESCRIPTOR = 'ADT_FUNCTION' OR TIMING_DESCRIPTOR IS NULL OR TIMING_DESCRIPTOR = 'BEFORE_INSERT' OR TIMING_DESCRIPTOR = 'AFTER_INSERT' OR TIMING_DESCRIPTOR = 'BEFORE_UPDATE' OR TIMING_DESCRIPTOR = 'AFTER_UPDATE' OR TIMING_DESCRIPTOR = 'BEFORE_DELETE' OR TIMING_DESCRIPTOR = 'AFTER_DELETE' OR TIMING_DESCRIPTOR = 'BEFORE_PURGE_TABLE' OR TIMING_DESCRIPTOR = 'AFTER_PURGE_TABLE' OR TIMING_DESCRIPTOR = 'INDEX_SEARCH' OR TIMING_DESCRIPTOR = 'INDEX_COUNT' OR TIMING_DESCRIPTOR = 'INDEX_INSERT' OR TIMING_DESCRIPTOR = 'INDEX_BEFORE_UPDATE' OR TIMING_DESCRIPTOR = 'INDEX_AFTER_UPDATE' OR TIMING_DESCRIPTOR = 'INDEX_DELETE' OR TIMING_DESCRIPTOR = 'PURGE_INDEX' OR TIMING_DESCRIPTOR = 'INDEX_MAINTENANCE_DEFERRED' OR TIMING_DESCRIPTOR = 'BEFORE_INSERT_DC' OR TIMING_DESCRIPTOR = 'BEFORE_UPDATE_DC' OR TIMING_DESCRIPTOR = 'BEFORE_DATA_CHECK' OR TIMING_DESCRIPTOR = 'AFTER_DATA_CHECK')