クォータ情報のテーブルサイズは、以下の計算式に従い算出します。
テーブルサイズ、および制限値の単位はバイトです。
Symfoware/RDB
テーブルサイズ = (レコード数/((ページサイズ*1024-94)/レコード長)+2)*ページサイズ*1024 |
ページサイズは以下の値を採用します。
レコード長≦930の場合 | 1 |
レコード長≦1954の場合 | 2 |
レコード長≦4002の場合 | 4 |
レコード長≦8098の場合 | 8 |
レコード長≦16290の場合 | 16 |
レコード長≦32674の場合 | 32 |
レコード長は以下の計算式により算出します。
可変長列数>0 の場合
レコード長 = 固定長列の合計長+可変長列の定義サイズ合計長+NOT NULL指定なし列数*2+26+(可変長列数*4+2) |
可変長列数>0 の場合
レコード長 = 固定長列の合計長+可変長列の定義サイズ合計長+NOT NULL指定なし列数*2+26 |
テーブルサイズが4096に満たない場合、テーブルサイズの値は4096に補正します。
テーブルサイズがページサイズの2048倍に満たない場合、テーブルサイズの値はページサイズの2048倍の値に補正します。
制限値 = 32674 |
計算中の割り算の結果は、すべて小数点以下を切り捨てます。
Oracle
テーブルサイズ = ([レコード数/([([(ブロックサイズ-172)*(1-PCTFREE/100)]+)/(レコード長+10)]-)]+)*ブロックサイズ |
※[] +:小数点以下切上げ、[] -:小数点以下切捨て
レコード長は以下の計算式により算出します。
レコード長 = 各列の長さの合計 |
各列の長さは以下の値を採用します。
CHAR | 定義長+3バイト |
VARCHAR2 | 定義長+3バイト |
NUMBER | 21+3バイト |
DATE | 7+3バイト |
その他 | 定義長+3バイト |
ブロックサイズは初期値=2048とし、以下の環境変数で値を変更することが可能です。
RN_ORACLE_ESTIMATE_BLOCKSIZE = <ブロックサイズ(バイト)> |
ただしブロックサイズは以下の範囲内で指定してください。(範囲外の値が指定された場合、初期値を採用します。)
2048≦ブロックサイズ
PCTFREE(現行ブロック更新のために確保する領域の割合)は初期値=10とし、以下の環境変数で値を変更することが可能です。
RN_ORACLE_ESTIMATE_PCTFREE = <割合値(%)> |
ただしPCTFREEは以下の範囲内で指定してください。(範囲外の値が指定された場合、初期値を採用します。)
0≦PCTFREE≦50
制限値 = ([(ブロックサイズ-172)*(1-PCTFREE/100)]+)-10 |
初期値の場合は1679
SQL Server
テーブルサイズ = 8192*レコード数/ページあたりレコード数 |
ページあたりレコード数は以下の計算式により算出します。
ページあたりレコード数 = 8096/レコード長 |
レコード長は以下の計算式により算出します。
レコード長 = 固定長列の合計長+可変長列の定義サイズ合計長+列数*2+(列数+7)/8+10 |
制限値 = 8096 |
計算中の割り算の結果は、すべて小数点以下を切り捨てます。
注意
本計算式はNavigatorがDBMSに格納するテーブルのサイズを見積もるために概算するもので、DBMS上の実際に格納されるサイズとは異なります。