ページの先頭行へ戻る
Symfoware Server V11.0.1 セットアップガイド
Symfoware

I.9 作業域の見積り

データベースの運用および操作では、以下の場合に作業用のディスクが必要になります。

データベースの運用および操作において必要な作業域(ディスク容量)は、次の合計値となります。多重で実行するRDBコマンドやアプリケーションで使用する入力ファイル、出力ファイル、および、多重で実行するRDBコマンドやSQL文の処理が内部で使用する作業域をすべて合計したものと考えてください。

作業域サイズ = (Σ(RDBコマンドやアプリケーションの入力ファイル)
               + Σ(RDBコマンドやアプリケーションの出力ファイル)
               + Σ(RDBコマンドやSQL文の処理内部で使用する
                   作業域サイズ))×λ

  λ: 安全率(1.5以上)

RDBコマンドやアプリケーションの入力ファイルおよび出力ファイル

以下の入力ファイルと出力ファイルのサイズを見積もってください。

RDBコマンドやSQL文の処理内部で使用する作業域

RDBコマンドの処理やSQL文の処理は、処理するデータ量に応じて内部で使用する作業域のサイズが変わります。作業域のサイズが少量の場合はメモリのみ使って処理されますが、作業域のサイズが大量になると自動的にディスクが使用されます。使用される作業域のサイズは、以下のように見積もってください。

Symfoware/RDBの処理

見積り内容

データベースの創成系コマンド

rdbsaloader

作業用領域として必要な容量の見積りを以下に示します。
以下について関連する全てのインデックスのソート作業域のうち最大のもののサイズを見積もってください。

  • インデックスがBTREE構造の場合
    ソート作業域サイズ = (インデックスを構成する列の合計長 * 2 + 26) * (入力ファイル中のレコード件数 + 表のDSIに格納済みのレコード件数)

  • インデックスがXML構造の場合
    ソート作業域サイズ = (インデックスに定義されている検索パスの長さの最大サイズ * 2 + 36) * (入力ファイル中および表のDSIに格納済みのXML文書に対して検索対象となる要素・属性の数)

備考. 列のデータ型がCHAR(VARYING含む)、NCHAR(VARYING含む)の場合は列の長さを1.5倍にします。(BTREE構造の場合とXML構造の場合)

rdbsloader

作業用領域として必要な容量の見積りを以下に示します。

  • iオプションを指定し、かつ、hオプションを指定しない場合
    作業用領域 = max(Size1 , Size2)
    Size1 : 表のDSIのソート作業域のサイズ
    Size2 : すべてのインデックスのDSIのソート作業域のうち最大のもののサイズ

  • iオプションを指定し、かつ、-hオプションを指定した場合
    作業用領域 = Size3 + Size4
    Size3 : 表のDSIのソート作業域のサイズ
    Size4 : すべてのインデックスのDSIのソート作業域の合計サイズ

  • vオプションを指定し、かつ、hオプションを指定しない場合
    作業用領域 = max(Size5 , Size6)
    Size5 : すべての表のDSIのソート作業域の合計サイズ
    Size6 : すべての表のDSIに属するインデックスのDSIのソート作業域のうち最大のものの合計サイズ

  • vオプションを指定し、かつ、hオプションを指定した場合
    作業用領域 = Size7 + Size8
    Size7 : すべての表のDSIのソート作業域の合計サイズ
    Size8 : すべてのインデックスのDSIのソート作業域の合計サイズ

表のDSIのソート作業域のサイズの見積りを以下に示します。
これらは、上記のSize1、Size3、Size5またはSize7の算出に使用します。

  • SEQUENTIALかつkオプション指定なしの場合
    ソート作業域のサイズ = 0

  • SEQUENTIALかつkオプション指定ありの場合
    ソート作業域のサイズ = (Size9 + 28 + Size10 * 2) * レコード件数 + Size11 / 32 / 1024 * 16
    Size9 : 表を構成する列の長さの合計サイズ
    Size10 : PRIMARY KEYに対応するインデックスを構成する列の長さの合計サイズ
    Size11 : 入力ファイルのサイズ

  • RANDOMの場合
    ソート作業域のサイズ = (Size12 + 36 + Size13 * 2) * レコード件数 + Size14 / 32 / 1024 * 16
    Size12 : 表を構成する列の長さの合計サイズ
    Size13 : クラスタキーを構成する列の長さの合計サイズ
    Size14 : 入力ファイルのサイズ

  • OBJECTの場合
    ソート作業域のサイズ = 0

インデックスのDSIのソート作業域のサイズの見積りを以下に示します。
これらは、上記のSize2、Size4、Size6またはSize8の算出に使用します。

  • 表のDSIがSEQUENTIALまたはOBJECTの場合

    • インデックスがBTREE構造の場合
      ソート作業域のサイズ = (Size15 * 2 + 14) * レコード件数
      Size15 : インデックスを構成する列の長さの合計サイズ

    • インデックスがXML構造の場合
      ソート作業域のサイズ = (Size15 * 2 + 36) * 検索対象となる要素・属性の数
      Size15 : インデックスに定義されている検索パスの長さの最大サイズ

      • 表のDSIがRANDOMであり、かつインデックスの構成列が一意性制約に対応する場合
        ソート作業域のサイズ = (Size16 * 2 + Size17) * レコード件数
        Size16 : インデックスを構成する列の長さの合計サイズ
        Size17 : クラスタキーを構成する列の長さの合計サイズ

      • 表のDSIがRANDOMであり、かつインデックスの構成列が一意性制約に対応しない場合
        ソート作業域のサイズ = (Size18 * 2 + Size19 * 2) * レコード件数
        Size18 : インデックスを構成する列の長さの合計サイズ
        Size19 : クラスタキーを構成する列の長さの合計サイズ

上記のうちSize15、 Size16およびSize18において、さらに以下の見積りが必要です。

  • 列のデータ型がCHARACTER(VARYING含む)、もしくはNATIONAL CHARACTER(VARYING含む)のとき、その列の長さを1.5倍にします。

データベースの更新系コマンド

rdbsuloader

作業用領域として必要な容量の見積りを以下に示します。

  • hオプションを指定しない場合
    作業用領域 = Size1
    Size1 : すべてのインデックスのDSIのソート作業域のうち最大のもののサイズ

  • hオプションを指定する場合
    作業用領域 = Size2
    Size2 : すべてのインデックスのDSIのソート作業域の合計サイズ

インデックスのDSIのソート作業域のサイズの見積りを以下に示します。
これらは、上記のSize1およびSize2の算出に使用します。

  • インデックスがBTREE構造の場合
    ソート作業域のサイズ = (Size3 * 2 + 26) * レコード件数
    Size3 : インデックスを構成する列の長さの合計

  • インデックスがXML構造の場合
    ソート作業域のサイズ = (Size3 * 2 + 36) * 検索対象となる要素・属性の数
    Size3 : インデックスに定義されている検索パスの長さの最大

上記のうちSize3において、さらに以下の見積りが必要です。

  • 列のデータ型がCHARACTER(VARYING含む)、もしくはNATIONAL CHARACTER(VARYING含む)のとき、その列の長さを1.5倍にします。

データベースの再編成コマンド

rdbgcdsi

作業用領域として必要な容量の見積りを以下に示します。

  • 表のDSI指定の場合は以下のサイズを見積もります。

    • SEQUENTIALの場合
      表に定義されているすべてのインデックスのDSIのうちソート作業域のサイズが最大のもののサイズで見積もります。
      表にインデックスが定義されていない場合は作業用領域を使用しません。
      ソート作業域のサイズ = (Size1 * 2 + 14) * レコード件数
      Size1 : インデックスを構成する列の長さの合計サイズ

    • RANDOMの場合
      表データのソート作業域のサイズで見積もります。
      ソート作業域のサイズ = (Size2 + 36 + Size3 * 2) * レコード件数 + Size4 / 32 / 1024 * 16
      Size2 : 表を構成する列の長さの合計サイズ
      Size3 : クラスタキーを構成する列の長さの合計サイズ
      Size4 : 表のDSIのサイズ

  • インデックスのDSI指定の場合は以下のサイズを見積もります。

    • BTREEで表のDSIがSEQUENTIALの場合
      ソート作業域のサイズ = (Size5 * 2 + 14) * レコード件数
      Size5 : インデックスを構成する列の長さの合計サイズ

    • BTREEで表のDSIがRANDOMでインデックスを構成する列が一意性制約に対応している場合
      ソート作業域のサイズ = (Size6 * 2 + Size7) * レコード件数
      Size6 : インデックスを構成する列の長さの合計サイズ
      Size7 : クラスタキーを構成する列の長さの合計サイズ

    • BTREEで表のDSIがRANDOMでインデックスを構成する列が一意性制約に対応しない場合
      ソート作業域のサイズ = (Size8 * 2 + Size9 * 2) * レコード件数
      Size8 : インデックスを構成する列の長さの合計サイズ
      Size9 : クラスタキーを構成する列の長さの合計サイズ

    • XMLの場合
      作業用領域は使用しません。

    上記のうちSize1、Size3、Size5、Size6、Size7、Size8およびSize9において、さらに以下の見積りが必要です。

    • 列のデータ型がCHARACTER(VARYING含む)またはNATIONAL CHARACTER(VARYING含む)の場合、その列の長さを1.5倍にします。

RDBディクショナリの再編成コマンド

rdbgcdic

作業用領域として必要な容量の見積りを以下に示します。
ワークファイルのサイズ = RDBディクショナリのサイズ / 10

データベースのメディアリカバリ

rdbadjrcv

作業用領域として必要な容量の見積りを以下に示します。
テンポラリログファイルのAIログ域見積りサイズ * 2

rdbmrrcv

作業用領域として必要な容量は、テンポラリログファイルのAIログ域見積りと同じです。

rdbrcv

作業用領域として必要な容量の見積りを以下に示します。

  • リカバリ対象が表のDSI、かつ、f baseオプション を指定した場合
    リカバリ対象の表のDSIに定義しているインデックスのDSIごとにソート作業域を見積もり、その中で最大のサイズで見積もってください。

  • リカバリ対象が表のDSI、かつ、関連するインデックスのDSIが存在しない場合
    テンポラリログファイルのAIログ域見積りと同じです。

  • リカバリ対象が表のDSI、かつ、関連するインデックスのDSIが存在する場合
    以下の2つの値のうち、大きい方で見積もってください。

    • リカバリ対象の表のDSIに定義しているインデックスのDSIごとにソート作業域を見積もり、その中で最大のサイズで見積もる

    • テンポラリログファイルのAIログ域見積り

    インデックスのDSIのソート作業域のサイズの見積りを以下に示します。

    • 表のDSIがSEQUENTIALまたはOBJECTの場合

      • インデックスがBTREE構造の場合
        ソート作業域のサイズ = (Size1 * 2 + 14) * レコード件数
        Size1 : インデックスを構成する列の長さの合計サイズ

      • インデックスがXML構造の場合
        ソート作業域のサイズ = (Size1 * 2 + 36) * 検索対象となる要素・属性の数
        Size1 : インデックスに定義されている検索パスの長さの最大サイズ

    • 表のDSIがRANDOMであり、かつインデックスの構成列が一意性制約に対応する場合
      ソート作業域のサイズ = (Size2 * 2 + Size3) * レコード件数
      Size2 : インデックスを構成する列の長さの合計サイズ
      Size3 : クラスタキーを構成する列の長さの合計サイズ

    • 表のDSIがRANDOMであり、かつインデックスの構成列が一意性制約に対応しない場合
      ソート作業域のサイズ = (Size4 * 2 + Size5 * 2) * レコード件数
      Size4 : インデックスを構成する列の長さの合計サイズ
      Size5 : クラスタキーを構成する列の長さの合計サイズ

    上記のうちSize1、Size2、Size3およびSize5において、さらに以下の見積りが必要です。

    • 列のデータ型がCHARACTER(VARYING含む)またはNATIONAL CHARACTER(VARYING含む)の場合、その列の長さを1.5倍にします。

rdbrcvdic

作業用領域として必要な容量は、テンポラリログファイルのAIログ域見積りと同じです。

最適化情報の設定

rdbups

以下の場合、作業域は使用されません。

  • cオプションを指定した場合

  • iオプションに表のDSI名を指定した場合

  • gオプションに表のDSO名を指定した場合

  • tオプションに指定した表にインデックスが1つもない場合

したがって、作業域量は、本コマンドの処理対象のインデックスのDSIによって決定されます。
作業用領域として必要な容量の見積りを以下に示します。

  • iオプションにインデックスのDSI名を指定した場合
    ソート作業域のサイズ = 指定したインデックスのDSIのソート作業域量

  • gオプションにインデックスのDSO名を指定した場合
    ソート作業域のサイズ = 指定したインデックスのDSO配下のすべてのインデックスDSIのソート作業域量のうち最大のもの

  • tオプションに指定した表にインデックスが1つ以上ある場合
    ソート作業域のサイズ = 指定した表配下のすべてのインデックスのDSIのソート作業域量のうち最大のもの

    インデックスのDSIのソート作業域のサイズの見積りを以下に示します
    インデックスのDSIのソート作業域のサイズ = (Size1 * 2) * レコード件数
    Size1 : インデックスを構成する列の長さの合計サイズ

    上記のSize1において、列のデータ型がCHARACTER(VARYING含む)、またはNATIONAL CHARACTER(VARYING含む)のとき、その列の長さを1.5倍にします。

SQL文の実行

rdbunlsql

SQL文の実行では、処理データを一時的に保持したり、ソート処理するための作業域が必要です。
SQL文の実行で使用する作業域サイズの見積り式については、“アプリケーション開発ガイド(共通編)”の“ソート作業域の見積り”を参照してください。

AIログ域のサイズの見積り式については、“I.6 テンポラリログファイルの見積り式”を参照してください。

参照

  • 表やインデックスのDSI容量の見積り式については、“RDB運用ガイド(データベース定義編)”の“データベーススペース所要量の見積り”を参照してください。

  • SQL文の実行で使用する作業域サイズの見積り式については、“アプリケーション開発ガイド(共通編)”の“ソート作業域の見積り”を参照してください。