スケーラブルデータベースサーバ HiRDB Version 8 システム導入・設計ガイド(Windows(R)用)

[目次][索引][前へ][次へ]

15.2.4 サーバが使用する共用メモリの計算式

<この項の構成>
(1) フロントエンドサーバが使用する共用メモリの計算式
(2) ディクショナリサーバが使用する共用メモリの計算式
(3) バックエンドサーバが使用する共用メモリの計算式
(4) 計算式で使用する変数

(1) フロントエンドサーバが使用する共用メモリの計算式

フロントエンドサーバが使用する共用メモリの計算式を次に示します。計算式で使用している変数については,「(4)計算式で使用する変数」を参照してください。

●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)}
  +36+{28×(f+1)×g}+20000+112×B
  +↑{(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
●pd_def_buf_control_area_assignオペランドにINITIALを指定するか,又はこのオペランドを省略した場合に加算します。
+{[(a+12)÷13]×1.1+[(a+62)÷63]+3.7}×(e+7)
●HiRDB External Data Access機能を使用する場合に加算します。
+↑{↑(40+(32+144×C+D))÷512↑×512}÷1024↑+↑(B×3616)÷1024↑
                         (単位:キロバイト)

●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)}
  +56+{40×(f+1)×g}+20000+112×B
  +↑{(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
●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↑

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

注意事項
  • pd_dbsync_point又はpd_system_dbsync_pointオペランドのどちらかの指定がcommitの場合に計算式3を加算します。pd_system_dbsync_pointオペランドの省略値はcommitです。
  • pd_dfw_awt_processオペランドを指定する場合に計算式4を加算します。
  • pd_max_commit_write_reclaim_noオペランドを省略した場合(ただし,pd_sysdef_default_optionオペランドに”v6compatible”又は”v7compatible”を指定した場合は除きます),又はpd_max_commit_write_reclaim_noオペランドに0以外を指定した場合に計算式5を加算します。ただし,計算式3を加算している場合には加算する必要はありません。
  • 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
       +(↑372×g÷16↑×16)+328×h+112×240※3
       +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+64※1+368※2
       +((↓(↑(g÷8)↑+3)÷4↓)×4)×m
    ●64ビットモードの場合
    500×1024
       +(↑472×g÷16↑×16)+344×h
       +(↑136×240÷16↑×16)※4
       +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+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)×P+16
    ●64ビットモードの場合
    (48+32×z)×P+16

注※1
pd_max_ard_processオペランドに1以上を指定した場合に加算します。

注※2
再編成時期予測機能を使用する場合に加算します。

注※3
pd_sysdef_default_optionオペランドに”v6compatible”又は”v7compatible”を指定した場合,112×240の替わりに112×MAX(r,i×1.2)で計算してください。

注※4
pd_sysdef_default_optionオペランドに”v6compatible”又は”v7compatible”を指定した場合,(↑136×240÷16↑×16)の替わりに(↑136×MAX(r,(i×1.2))÷16↑×16)で計算してください。

(3) バックエンドサーバが使用する共用メモリの計算式

バックエンドサーバが使用する共用メモリの計算式を次に示します。

32ビットモードの場合(単位:キロバイト)
計算式1+↑{(↑(40+(計算式2〜計算式4,計算式6,計算式8を加算した値))÷512↑×512)}÷1024↑+↑{(↑(40+計算式5)÷512↑×512)}÷1024↑

64ビットモードの場合(単位:キロバイト)
計算式1+↑{(↑(72+(計算式2〜計算式4,計算式6,計算式8を加算した値))÷512↑×512)}÷1024↑

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

計算式1〜8についての注意事項
  • 次に示すどれかの条件を満たす場合に計算式3を加算します。
    ・pd_rdarea_open_attribute_useオペランドにYを指定する場合
    ・高速系切り替え機能を使用する場合
  • 次に示すどれかの条件を満たす場合に計算式4を加算します。
    ・pd_dbsync_pointオペランドにcommitを指定する場合
    ・pd_shared_rdarea_useオペランドにYを指定する場合
  • HiRDB External Data Accessをインストールする場合に計算式5を加算します。
  • pd_dfw_awt_processオペランドを指定する場合に計算式6を加算します。
  • pd_max_commit_write_reclaim_noオペランドを省略した場合(ただし,pd_sysdef_default_optionオペランドに”v6compatible”又は”v7compatible”を指定した場合は除きます),又はpd_max_commit_write_reclaim_noオペランドに0以外を指定した場合に計算式7を加算します。ただし,計算式4を加算している場合には加算する必要はありません。
  • pd_bes_shmpool_sizeオペランドを省略すると,次の値が設定されます。
    32ビットモードの場合:
    ↑{(↑(40+(計算式2〜計算式4,計算式6,計算式8の合計値))÷512↑×512)}÷1024↑+↑{(↑(40+計算式5)÷512↑×512)}÷1024↑
    64ビットモードの場合:
    ↑{(↑(72+(計算式2〜計算式4,計算式6,計算式8の合計値))÷512↑×512)}÷1024↑
  • pd_max_resident_rdarea_noオペランドを指定する場合に計算式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
      +(372+48※1)×g+328×h+112×r※3
      +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+144×F+80+32×g+64※2
       +((↓(↑(g÷8)↑+3)÷4↓)×4)×m
    ●64ビットモードの場合
    500×1024
      +(472+56※1)×g+344×h+136×r※4
      +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+160×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ビットモードの場合
    32+144×C+(6160+112+48×e)×B
    計算式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)×P+16
    ●64ビットモードの場合
    (48+32×z)×P+16
    計算式8
    (単位:バイト)
    16+112+(48+48×Q)+ (48+32×R)

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

注※2
pd_max_ard_processオペランドに1以上を指定した場合に加算します。

注※3
pd_sysdef_default_optionオペランドに”v6compatible”又は”v7compatible”を指定した場合,112×rの替わりに112×MAX((i×1.2),r)で計算してください。

注※4
pd_sysdef_default_optionオペランドに”v6compatible”又は”v7compatible”を指定した場合,136×rの替わりに136×MAX((i×1.2),r)で計算してください。

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

i:サーバ内のインデクスの総数
ただし,分割キーインデクスの場合はサーバ内分割数になります。

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

B:pd_max_foreign_serverオペランドの値

C:HiRDB External Data Access Adapterのサポート対象のDBMSの総数
  • HiRDB又はXDM/RD E2接続用のHiRDB External Data Access Adapterの場合:3
  • ORACLE接続用のHiRDB External Data Access Adapterの場合:1
すべてのHiRDB External Data Access Adapterをインストールした場合は,サポート対象のDBMSの総数が5になります。

D:HiRDB External Data Access AdapterがSQL変換で使用する領域の総和
  • HiRDB又はXDM/RD E2接続用のHiRDB External Data Access Adapterの場合:512
  • ORACLE接続用のHiRDB External Data Access Adapterの場合:2048

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オペランドで指定した共用メモリのサイズ

P:pd_max_commit_write_reclaim_noオペランドの値

Q:pd_max_resident_rdarea_noオペランドの値

R:pd_max_resident_rdarea_shm_noオペランドの値

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