17.22.5 ResultSetオブジェクトの容量見積もり
ResultSetオブジェクトの容量見積もりの計算式を次に示します。
- 計算式(32ビットモードの場合)
ResultSetオブジェクトの容量= 16000+(900+ロケータアクセスオブジェクト長+受信バッファ長 +一時的作業領域長))×ResultSetインスタンス数 +検索結果蓄積領域長×ResultSetインスタンス数2 (単位:バイト)
- 計算式(64ビットモードの場合)
ResultSetオブジェクトの容量= 17000+(1300+ロケータアクセスオブジェクト長+受信バッファ長 +一時的作業領域長))×ResultSetインスタンス数 +検索結果蓄積領域長×ResultSetインスタンス数2 (単位:バイト)
- ロケータアクセスオブジェクト長:
-
位置付け子機能を使用する場合(DriverManager.getConnectionの引数のurl又はユーザプロパティのLONGVARBINARY_ACCESSでLOCATORを指定,又はDataSource系インタフェースのsetLONGVARBINARY_AccessメソッドでLOCATORを指定),1,600を加算してください。
- 受信バッファ長:
-
次に示す計算式から求めてください。
MAX(A, ↑(240+検索行データ長×ブロック転送の行数)÷4096↑×4096, Connectionオブジェクトの容量見積もりの受信バッファ長)
A:32768
- 検索行データ長:
-
次に示す計算式から求めてください。
検索列数 8+ Σ (列データの定義長i ) i=1
- 列データの定義長:
-
BLOB又はBINARYの場合で,ロケータを使用しているときは4となります。ロケータを使用していないときは,次のどちらかの値となります。
-
HiRDB_for_Java_MAXBINARYSIZEを指定していない場合
8+定義長
-
HiRDB_for_Java_MAXBINARYSIZEを指定している場合
MIN(8+定義長,8+HiRDB_for_Java_MAXBINARYSIZE指定値)
-
- ブロック転送の行数:
-
ブロック転送機能を使用しない場合は1となります。
- 一時的作業領域長:
-
次に示す計算式から求めてください。
一時的作業領域長=検索列の「列データの実長2」の最大値 +検索列の「列データの実長3」の最大値
- 列データの実長2:
-
次の表に示します。
出力データ属性
列データの実長2
INTEGER
4
SMALLINT
2
DECIMAL(m, n)
↓m÷2↓+1
FLOAT
8
SMALLFLT
4
上記以外
実長
- 列データの実長3:
-
位置付け子機能を使用しBLOB又はBINARY型列を検索した場合,次のどちらかの値となります。
-
HiRDB_for_Java_LONGVARBINARY_ACCESS_SIZEに0以外を指定している場合
HiRDB_for_Java_LONGVARBINARY_ACCESS_SIZE指定値×1024
-
HiRDB_for_Java_LONGVARBINARY_ACCESS_SIZEに0を指定,又は省略している場合
BLOB又はBINARY型の列に格納されているデータの実長
上記以外の場合は0となります。
-
- 検索結果蓄積領域長:
-
次に示す計算式から求めてください。
検索列数 Σ (100+列データの実長i )×検索行数 i=1
- 列データの実長:
-
次に示します。
出力データ属性
列データの実長
INTEGER
4
SMALLINT
2
DECIMAL(m, n)
↓m÷2↓+1
FLOAT
8
SMALLFLT
4
BLOB又はBINARY
位置付け子機能を使用しているときは4となります。位置付け子機能を使用していないときは,次のどちらかの値となります。
-
HiRDB_for_Java_MAXBINARYSIZEを指定していない場合
8+実長
-
HiRDB_for_Java_MAXBINARYSIZEを指定している場合
MIN(8+実長,8+MAXBINARYSIZE指定値)
上記以外
実長
-
- ResultSetインスタンス数2:
-
結果集合の型がResultSet.TYPE_SCROLL_INSENSITIVE,又はResultSet.TYPE_SCROLL_SENSITIVEであるResultSetインスタンスの数