Cosminexus 簡易構築・運用ガイド

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

付録H Cosminexus DABroker Libraryのメモリ所要量

ここでは,Cosminexus DABroker Libraryのメモリ所要量の計算式について説明します。

なお,Cosminexus DABroker Libraryのメモリ所要量の計算式には,JDBCのメモリサイズを使用します。JDBCのメモリサイズの計算式に使用するデータのサイズについては,「付録H.1 JDBCのメモリサイズの計算式に使用するデータのサイズ」を参照してください。

Cosminexus DABroker Libraryのメモリ所要量の計算式を次に示します。

メモリ所要量=128+データベース同時接続数
×〔386+A×{20+B+定義列数×2+C×2+D×E+F×(G+H)}〕+I

(凡例)
A:並列に使用しているカーソル数
並列に使用しているカーソル数は,一つのConnectionオブジェクトから派生して,同時に使用するStatementインスタンス数,PreparedStatementインスタンス数,CallableStatementインスタンス数,ResultSetインスタンス数の総和です。
B:bufSizeの値
JDBCを使用してデータベースに接続するときに指定するbufSizeの値です。
C:SQLのサイズ
SQLのサイズは,KB(キロバイト)単位に切り上げて算出してください。
D:?パラメタのサイズ
?パラメタのサイズは,一つのSQL文に指定する,?パラメタのデータ長の総和です。?パラメタに指定する列属性ごとのデータ長を次の表に示します。

表H-1 パラメタ長一覧(ネイティブライブラリ内)

データベース種別 列属性 データ長(バイト) 備考
HiRDB INTEGER 12
SMALLINT 8
LARGE DECIMAL(m, n) ↓(M/2)↓+7
  • Mは指定した値の精度を表します。
  • 4バイト単位で切り上げます。
FLOAT,DOUBLE PRECISION 16
SMALLFLT, REAL 12
CHAR(n),MCHAR(n),NCHAR(n),VARCHAR(n),MVARCHAR(n),NVARCHAR(n) 指定した実データ長+8 4バイト単位で切り上げます。
DATE 16
TIME 16
TIMESTAMP(p) p=0,p=2の場合:28
p=4,p=6の場合:32
BINARY(n),BLOB(n) 指定した実データ長+4
ORACLE,Oracle8i FLOAT 56
DATE 64
その他のデータ型 指定した実データ長+54 4バイト単位で切り上げます。
E:配列更新の配列数
配列更新の配列数は,HiRDBの「配列を使用したINSERT機能」,「配列を使用したUPDATE機能」,または「配列を使用したDELETE機能」を使用する場合はaddBatchメソッドの実行回数,そのほかの場合は1となります。
F:検索データのサイズ
検索データのサイズは,検索する列のデータ長の総和(1行分)です。
ただし,接続するデータベースがOracleであり,CLOB,NCLOB,BLOB,BFILE,LONG LAW,LONGのどれかの列を一つ以上含む検索の場合,検索データのサイズはほかの列に関係なく,bufSizeの値となります。
列属性ごとのデータ長を次の表に示します。

表H-2 検索する列のデータ長一覧(ネイティブライブラリ内)

データベース種別 列属性 データ長(バイト) 備考
HiRDB INTEGER 4
SMALLINT 2
LARGE DECIMAL(m, n) m+2
FLOAT,DOUBLE PRECISION 8
SMALLFLT,REAL 4
CHAR(n),MCHAR(n) n+1
NCHAR(n) n×2+1
VARCHAR(n),MVARCHAR(n) n+2
NVARCHAR(n) n×2+2
DATE 11
TIME 9
TIMESTAMP(p)
  • p=0の場合:20
  • p=0以外の場合:21+p
BINARY(n),BLOB(n) HiRDBの位置付け子機能を使用する場合 12
HiRDBの位置付け子機能を使用しない場合 (nとbufSizeの値を比較してより小さい方の値)+8 bufSizeの値とは,JDBCを使用してデータベースに接続するときに指定するbufSizeの値です。
ORACLE,Oracle8i NUMBER 44
VARCHAR2(n),CHAR(n),VARCHAR2(n),NCHAR(n) n+1
MLSLABEL(n),RAW(n) n
ROWID 9
FLOAT 8
DATE 20
G:FETCHサイズ
FETCHサイズは,Statement,またはResultSetクラスのsetFetchSizeメソッドの指定値です。ただし,指定値が0,または指定を省略した場合は,次のようになります。
  • 指定値が0または指定を省略した場合のFETCHサイズ=64KB/検索データのサイズ
    計算の結果0になる場合は,1に繰り上げられます。
H:データベース用データ領域
データベース用データ領域は,接続データベースがHiRDBの場合は0,そのほかのデータベースの場合は1となります。
I:JDBCのメモリサイズ
JDBCのメモリサイズは,次の値です。
  • JDBCのメモリサイズ=(Connectionオブジェクトサイズ
    +Statementオブジェクトサイズ
    +ResultSetオブジェクトサイズ
    +PreparedStatementオブジェクトサイズ
    +CallableStatementオブジェクトサイズ
    +?パラメタの実データサイズ
    +検索データのトータルサイズ
    +SQLサイズ
    +bufSizeの値によるデータサイズ
    +トレースサイズ)/1,024
なお,それぞれのサイズの計算式については,「付録H.1 JDBCのメモリサイズの計算式に使用するデータのサイズ」を参照してください。
<この節の構成>
付録H.1 JDBCのメモリサイズの計算式に使用するデータのサイズ