Hitachi

ノンストップデータベース HiRDB Version 9 システム導入・設計ガイド(Windows(R)用)


15.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〜計算式6を加算した値))÷512↑×512)}÷1024↑

64ビットモードの場合(単位:キロバイト)

計算式1+↑{(↑(72+(計算式2〜計算式8を加算した値))÷512↑×512)}÷1024↑

計算式で使用している変数については,「計算式で使用する変数」を参照してください。

計算式1〜8についての注意事項
  • 次に示すどれかの条件を満たす場合に計算式3を加算します。

    ・pd_rdarea_open_attribute_useオペランドにYを指定する場合

    ・高速系切り替え機能を使用する場合

  • 次に示すどれかの条件を満たす場合に計算式4を加算します。

    ・pd_dbsync_pointオペランドにcommitを指定する場合

    ・pd_shared_rdarea_useオペランドにYを指定する場合

    ・上記以外の場合,計算式6を加算します。

  • pd_dfw_awt_processオペランドを指定する場合に計算式5を加算します。

  • pd_bes_shmpool_sizeオペランドを省略すると,次の値が設定されます。

    32ビットモードの場合:

    ↑{(↑(40+(計算式2〜計算式6の合計値))÷512↑×512)}÷1024↑

    64ビットモードの場合:

    ↑{(↑(72+(計算式2〜計算式8の合計値))÷512↑×512)}÷1024↑

  • pd_max_resident_rdarea_noオペランドを指定する場合に計算式7を加算します。

  • pd_max_temporary_object_noの値が1以上の場合に計算式8を加算します。

    条件

    共用メモリの計算式

    計算式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

       +((↓(↑(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

       +((↓(↑(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

    (単位:バイト)

    ●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

    計算式6

    (単位:バイト)

    ●32ビットモードの場合

    (32+16×z)×10+16

    ●64ビットモードの場合

    (48+32×z)×10+16

    計算式7

    (単位:バイト)

    16+112+(48+48×Q)+ (48+32×R)

    計算式8

    (単位:バイト)

    16+80×S

注※1

pd_max_list_users及びpd_max_list_countオペランドの両方とも0でない場合に加算します。

注※2

pd_max_ard_processオペランドに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オペランドの値

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')