IBM® Informix® 12.10

固定長行を持つ表の見積り

(ページ数単位で) 固定長行を持つ表のサイズを見積もることができます。固定長行を持っている表には、可変長文字 (VARCHAR) 型または各国語可変長文字 (NVARCHAR) 型の列はありません。

ページ内に固定長行を持つ表のサイズを見積もるには、次の手順を実行します。

ページ サイズ、行サイズ、行数、データ ページ数を見積もるには

  1. onstat -b を使用して、ページのサイズを求めます。

    この出力の最後の行にあるフィールド buffer size に、ページ サイズが表示されます。

  2. この値から、各データ ページのヘッダに相当する 28 を引きます。 結果として得られる数値は pageuse と呼ばれます。
  3. 行のサイズを計算するには、表定義での各列の幅を加えます。テキスト (TEXT) 型の列とバイト (BYTE) 型の列は、それぞれ 56 バイトを使用します。 すでに表を作成している場合は、次の SQL 文を使用して、行のサイズを求めることができます。
    SELECT rowsize FROM systables WHERE tabname = 
       'table-name';
  4. 表に含まれる行数を見積もります。 この数値は rows と呼ばれます。表に必要なデータ ページ数を計算する手順は、行サイズが pageuse よりも小さいか、大きいかによって異なります。
  5. 行のサイズが pageuse 以下の場合は、次の公式を使用してデータ ページ数を計算します。 trunc() 関数の表記によって、最も近い整数に丸める (切り捨てる) ように指示されます。
    data_pages = rows / trunc(pageuse/(rowsize + 4))

    1 ページあたりの最大行数は行のサイズにかかわらず 255 です。

    重要: データベース サーバで使用できる行の最大サイズは約 32KB ですが、行サイズがページ サイズを超えるとパフォーマンスが低下します。ワイド表を分割してパフォーマンスを向上させる方法については、パフォーマンス向上のためのデータ モデルの逆正規化を参照してください。
  6. 行のサイズが pageuse より大きい場合、行はページ間で分割されます。 行の最初の部分を含んでいるページはホーム ページ と呼ばれます。行のそれ以降の部分を含んでいるページは剰余ページ と呼ばれます。行が 3 ページ以上にわたる場合は、剰余ページの一部がその行のデータで完全に満たされます。行の末尾部分によって使用される領域が 1 ページに満たないときは、ほかの行の末尾部分に結合して、部分剰余ページを充てんすることができます。データ ページの数は、ホーム ページ、全面が使用された剰余ページ、一部分が使用された剰余ページの和に相当します。
    1. ホーム ページの数を計算します。

      ホーム ページの数は次のように行数と同じになります。

      homepages = rows
    2. 全面剰余ページの数を計算します。

      行の残りのサイズは、次の公式を使用して計算します。

      remsize = rowsize - (pageuse + 8)

      remsizepageuse - 4 よりも小さい場合は全面剰余ページがないことになります。

      remsizepageuse - 4 よりも大きい場合は、次の式で remsize を使用して、全面剰余ページ数を求めます。

      fullrempages = rows * trunc(remsize/(pageuse - 8))
    3. 部分剰余ページの数を計算します。

      個々の行のホーム ページと全面剰余ページを除いた部分的な行の剰余サイズを最初に計算しなければなりません。次の公式では、remainder() 関数の表記が除算後の剰余をとることを示しています。

      partremsize = remainder(rowsize/(pageuse - 8)) + 4

      データベース サーバでは、ページ サイズに対する一定のサイズしきい値を使用して、部分剰余ページの使用数を決定します。次の公式を使用して、ページに対する部分剰余の割合を計算します。

      partratio = partremsize/pageuse 

      次の表内の該当する式を使用して、部分剰余ページの数を計算します。

      部分剰余の割合の数値 部分剰余ページ数の計算に使用する公式
      .1 未満 partrempages = rows/(trunc((pageuse/10)/remsize) + 1)
      .33 未満 partrempages = rows/(trunc((pageuse/3)/remsize) + 1)
      .33 以上 部分剰余ページ数 = rows
    4. 次の公式を使用して、ページ数の合計を求めます。
      tablesize = homepages + fullrempages + partrempages


フィードバックの送信 | 例の共有 | トラブルシューティング

PDF を見つけるには、Publications for the IBM Informix 12.10 family of products を参照してください。
リリース ノート、ドキュメント ノート、マシン ノートについては、リリース ノート・ページを参照してください。
タイムスタンプ リリース日: 2013 年 3 月