ページの先頭行へ戻る
Symfoware Server V12.0.0  導入ガイド(サーバ編)
FUJITSU Software

G.1 テーブルサイズの見積り

テーブルサイズの見積り式を以下に示します。

表G.1 レコード長が2032バイト以下の場合の見積り式

項目

見積り式(バイト)

(1)レコード長

23 + NULLマップ + OID + 列データ

NULLマップ:列の数 ÷ 8(注1)
OID:“WITH OID”の表である場合は4。デフォルトの場合は0。
列データ:列の長さ(注2)の総和

注1) 小数点以下は整数に切り上げます。

注2) 各列の長さの計算方法はデータ型によって異なります。詳細は“デG.3 データ型のサイズ”を参照してください。

  • レコードヘッド部 + NULLマップ + OIDの総長およびレコード長は8バイトの倍数となるように調整する必要があります。例えば、計算の結果が28バイトの場合、4を加えて32バイトとします。

  • 各列データの長さは、データ型によって、一定バイトの倍数に揃える必要があります。例えば、以下のテーブルの列データサイズは、INT型データの格納位置を4バイトの倍数に揃えるため、2(c1のサイズ)+2+4(c2のサイズ)=8バイトと、2を加えます。

    create table tb1(c1 char(1),c2 int)
  • 算出したレコード長が2032バイトを超えた場合、レコード中の可変長データが自動的に圧縮されるときがあります。この場合は、“表G.2 レコード長が2032バイトより大きい場合の見積り式”の見積り式でテーブルサイズを見積もってください。

(2)ページ内レコード数

8168(注1) ÷ ((1)レコード長 + 4(注2))

注1) ページ長(8192) - ページヘッド部(24)

注2) ポインター長(4)

  • 算出した(2)ページ内レコード数は、整数となるよう小数点以下を切り捨てます。

(3)レコード格納に必要なページ数

総レコード数 ÷ (2)ページ内レコード数

算出した(3)レコード格納に必要なページ数は整数となるよう小数点以下を切り捨てます。

(4)スペース量

(3)レコード格納に必要なページ数 × ページ長 × 安全率(注1)

注1) 2.0以上を指定してください。

  • バキュームによるテーブルやインデックス内のガベージが適切に回収されている時の安全率です。

表G.2 レコード長が2032バイトより大きい場合の見積り式

項目

見積り式(バイト)

(4)スペース量

総レコード数 × (1)レコード長 × 安全率(注1)

注1) 2.0以上を指定してください。

  • バキュームによるテーブルやインデックス内のガベージが適切に回収されている時の安全率です。