Hitachi

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


15.1.4 シングルサーバが使用する共用メモリの計算式

シングルサーバが使用する共用メモリの計算式を次に示します。

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

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

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

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

計算式1〜9についての注意事項
  • pd_rdarea_open_attribute_useオペランドにYを指定する場合に計算式3を加算します。

  • pd_dbsync_point又はpd_system_dbsync_pointオペランドのどちらかの指定がcommitの場合に計算式4を加算します。pd_system_dbsync_pointオペランドの省略値はcommitです。

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

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

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

    32ビットモードの場合:

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

    64ビットモードの場合:

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

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

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

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

計算式1〜9を次に示します。

計算式の種類

共用メモリの計算式

計算式1

(単位:キロバイト)

●32ビットモードの場合

b×1.3+c+d+f+1.6+q+r+4

+{[(a+12)÷13]×1.1+[(a+62)÷63]+3.7}×(e+3)+3.5

+{

  ↑(↑(b÷64)↑)×(8÷16)↑×4×4

  +12×{(b÷3)+1−mod(b÷3, 2)}

  +8×a×{(e+3)×2+1+MAX(e÷10,5)}+32+20000

  +↑{(c÷8)+7}÷64↑×8+↑{(f÷8)+7}÷64↑×8

  +MAX{a×(e+3),c÷8}×104+MAX{a×(e+3),f÷8}×24

  +↑{(q÷4)+7}÷64↑×8

  +↑{[(r−(s×592+t×916+u×172))÷2]+7}÷64↑×8

  +MAX{13×(e+3),q÷4}×88

  +MAX{21×(e+3),[r−(s×592+t×916+u×172)]÷2}×60

  +44+256+1024+512※1

 }÷1024+y+7.5

+↑{248×v×w+47×v+72}÷1024↑

+↑{↑(28+(↑(32+((↑g÷127↑+1)×2048+128))÷32↑×32))

  ÷128↑×128

  }÷1024↑

 D

+Σ(Ei)

 i=1

+1024

pd_def_buf_control_area_assignオペランドにINITIALを指定するか,又はこのオペランドを省略した場合に加算します。

+{[(a+12)÷13]×1.1+[(a+62)÷63]+3.7}×(e+7)

●64ビットモードの場合

b×1.3+c+d+f+1.6+q+r+5

+{[(a+12)÷13]×1.2+[(a+62)÷63]×1.5+4.1}

×(e+3)+3.5

+{

  ↑(↑(b÷64)↑)×(8÷16)↑×4×4+12

  ×{(b÷3)+1−mod(b÷3, 2)}

  +8×a×{(e+3)×2+1+MAX(e÷10,5)}+48+20000

  +↑{(c÷8)+7}÷64↑×8+↑{(f÷8)+7}÷64↑×8

  +MAX{a×(e+3),c÷8}×104+MAX{a×(e+3),f÷8}×40

  +↑{(q÷4)+7}÷64↑×8

  +↑{[(r−(s×600+t×936+u×184))÷2]+7}÷64↑×8

  +MAX{13×(e+3),q÷4}×104

  +MAX{21×(e+3),[r−(s×600+t×936+u×184)]÷2}×72

  +72+256+1536+512※1

 }÷1024+y+7.5

+↑{248×v×w+64×v+72}÷1024↑

+↑{↑(56+(↑(56+((↑g÷127↑+1)×2048+128))÷32↑×32))

  ÷128↑×128

  }÷1024

 D

+Σ(Ei)

 i=1

+1024

pd_def_buf_control_area_assignオペランドにINITIALを指定するか,又はこのオペランドを省略した場合に加算します。

+{[(a+12)÷13]×1.2+[(a+62)÷63]×1.5+4.1}×(e+7)

計算式2

(単位:バイト)

●32ビットモードの場合

500×1024

  +5072×(e+15)+(↑436×g÷16↑×16)+48※1×g+496×h

  +112×(p+240)

  +96×x+32×j+132×{19+(e+3)×3}

  +48×n+48×{(e+3)×2+1+MAX(5,(e+3)÷10)}

  +68×B+152×(A+120)+80+32×g+64※2+368※3

  +((↓(↑(g÷8)↑+3)÷4↓)×4)×j

●64ビットモードの場合

500×1024

  +9416×(e+15)+(↑536×g÷16↑×16)

  +(↑56※1×g÷16↑×16)+512×h

  +(↑136×(p+240)÷16↑×16)

  +144×x+48×j+240×{19+(e+3)×3}

  +64×n+96×{(e+3)×2+1+MAX(5,(e+3)÷10)}

  +68×B+184×(A+120)+96+48×g+64※2+448※3

  +((↓(↑(g÷8)↑+7)÷8↓)×8)×j

計算式3

(単位:バイト)

●32ビットモードの場合

{[(↑↑g÷8↑÷4↑)×4]+8}×{(e+3)×2+12}

●64ビットモードの場合

{[(↑↑g÷8↑÷8↑)×8]+8}×{(e+3)×2+12}

計算式4

(単位:バイト)

●32ビットモードの場合

(32+16×x)×(e×2+7+1)+16

●64ビットモードの場合

(48+32×x)×(e×2+7+1)+16

計算式5

(単位:バイト)

●32ビットモードの場合

72+52×C+68×x

pd_dbbuff_trace_levelオペランドに1を指定する場合に加算します。

+320×x

●64ビットモードの場合

96+56×C+72×x

pd_dbbuff_trace_levelオペランドに1を指定する場合に加算します。

+640×x

計算式6

(単位:バイト)

●32ビットモードの場合

(32+16×x)×10+16

●64ビットモードの場合

(48+32×x)×10+16

計算式7

(単位:バイト)

16+112+(48+48×G)+(48+32×H)

計算式8

(単位:バイト)

16+80×I

計算式9

(単位:バイト)

↑(112+(28+J×52))÷8↑×8

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

f:pd_view_def_cache_sizeオペランドの値

g:pd_max_rdarea_noオペランドの値

h:pd_max_file_noオペランドの値

j:インデクス用のグローバルバッファプール数

pd_dbbuff_modifyオペランドにYを指定している場合,pdbufferコマンドの指定数に,pd_max_add_dbbuff_noオペランドの値を加算して計算します。

n:pd_lck_until_disconnect_cntオペランドの値

p:pd_assurance_index_noオペランドの値

q:pd_type_def_cache_sizeオペランドの値

r:pd_routine_def_cache_sizeオペランドの値

s:インストールしたプラグインの数

t:DMLで使用するプラグイン関数の総数 ※4

u:DMLで使用するプラグイン関数のパラメタ総数 ※4

v:pd_max_list_usersオペランドの値

w:pd_max_list_countオペランドの値

x:総グローバルバッファ数(pdbufferオペランドの指定数)

pd_dbbuff_modifyオペランドにYを指定している場合,pdbufferコマンドの指定数に,pd_max_add_dbbuff_noオペランドの値を加算して計算します。

y:pd_registry_cache_sizeオペランドの値

A:pd_assurance_table_noオペランドの値

B:サーバ内の最大トランザクション数(2×e+7)

C:pd_dfw_awt_processオペランドの値

D:指定したpdplgprmオペランドの総数

Ei:i番目のpdplgprmオペランドで指定した共用メモリのサイズ

G:pd_max_resident_rdarea_noオペランドの値

H:pd_max_resident_rdarea_shm_noオペランドの値

I:pd_max_temporary_object_noオペランドの値

J:pd_max_tmp_table_rdarea_noオペランドの値

T:空き領域の再利用機能を使用する表数

注※1

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

注※2

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

注※3

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

注※4

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