表G.1 レコード長が2032バイト以下の場合の見積り式
項目 | 見積り式(バイト) |
---|
(1)レコード長 | 27(注1) + NULLマップ + OID + 列データ NULLマップ:列の数 ÷ 8 (注2) OID:“WITH OID”の表である場合は4。デフォルトの場合は0。 列データ:列の長さの総和 注1) レコードヘッド部 注2)小数点以下は整数に切り上げます。 列データは8バイトのバウンダリに配置されるため、レコードヘッド部 + NULLマップ + OIDの総長は8バイトの倍数となるように調整する必要があります。 例えば、27 + 1 ÷ 8(切り上げ) + 0 = 28バイトの場合、4を加えて32バイトとしてください。 各列のデータは定義されたデータ型のバウンダリに配置されるため、列データの長さは各データ型のバウンダリを考慮してください。 例えば、以下のテーブルの列データの長さは、各データ型の総計である37バイトではなく、バウンダリ調整がされ64バイトになります。 定義:create table tb1(c1 char(1), c2 long, c3 int, c4 box) 見積り:CHAR型1バイト + LONG型8バイトのバウンダリ調整7バイト + LONG型8バイト + INT型4バイト + BOX型32バイトのバウンダリ調整12バイト + BOX型32バイト = 64バイト 各レコードは8バイトのバウンダリに配置されるため、列データの長さは8バイトの倍数となるように調整する必要があります。 算出したレコード長が2032バイトを超えた場合、レコード中の可変長データが自動的に圧縮されるときがあります。この場合は、“表G.2 レコード長が2032バイトより大きい場合の見積り式”の見積り式でテーブルサイズを見積もってください。
|
(2)ページの容量 | 8192(注1) × fillfactor(注2) - 24(注3) 注1) ページ長(8192) 注2) テーブル定義で指定したfillfactorの値(省略時は100%) 注3) ページヘッド部(24) |
(3)ページ内レコード数 | (2)ページの容量 ÷ ((1)レコード長 + 4(注1)) 注1) ポインター長(4) |
(4)レコード格納に必要なページ数 | 総レコード数 ÷ (3)ページ内レコード数 |
(5)スペース量 | (4)レコード格納に必要なページ数 × ページ長 × 安全率(注1) 注1) 2.0以上を指定してください。 |