データベースの運用および操作では、以下の場合に作業用のディスクが必要になります。
データベースの運用および操作において必要な作業域(ディスク容量)は、次の合計値となります。多重で実行するRDBコマンドやアプリケーションで使用する入力ファイル、出力ファイル、および、多重で実行するRDBコマンドやSQL文の処理が内部で使用する作業域をすべて合計したものと考えてください。
作業域サイズ = (Σ(RDBコマンドやアプリケーションの入力ファイル)
+ Σ(RDBコマンドやアプリケーションの出力ファイル)
+ Σ(RDBコマンドやSQL文の処理内部で使用する
作業域サイズ))×λ
λ: 安全率(1.5以上)
RDBコマンドやアプリケーションの入力ファイルおよび出力ファイル
以下の入力ファイルと出力ファイルのサイズを見積もってください。
データベースの創成データファイル(ロードファイル)
データベースからの抽出データファイル(アンロードファイル)
メディアリカバリのためのDSIのバックアップファイル
リカバリのためのアーカイブログファイル
Symfoware/RDBがダウンしたときのコアファイル
Symfoware/RDBがメッセージ出力するメッセージログファイル
アプリケーションが使用するファイル
入出力ファイル | 見積り内容 |
---|
ロードファイル | 表のDSIの容量で見積もってください。 作業域サイズは、ロードファイルをディスクにどれだけ保持して処理するかによります。 表のDSIにデータの圧縮指定をしている場合は、圧縮しているデータを伸張して作業域に出力するため、必ず、以下により見積もりを行ってください。 ロードファイルサイズ = 表のDSIの容量 * 圧縮率(注) 注) 設計時に測定した圧縮率です。データの種類により圧縮率が変化するため、設計時に圧縮率を見積もる必要があります。圧縮率の詳細については、“RDB運用ガイド(データベース定義編)”の“圧縮率の確認”を参照してください。 |
アンロードファイル | 表のDSIの容量で見積もってください。 作業域サイズは、アンロードファイルをディスクにどれだけ保持するかによります。 表のDSIにデータの圧縮指定をしている場合は、圧縮しているデータを伸張して作業域に出力するため、必ず、以下により見積もりを行ってください。 アンロードファイルサイズ = 表のDSIの容量 * 圧縮率(注) 注) 設計時に測定した圧縮率です。データの種類により圧縮率が変化するため、設計時に圧縮率を見積もる必要があります。圧縮率の詳細については、“RDB運用ガイド(データベース定義編)”の“圧縮率の確認”を参照してください。 |
バックアップファイル | 表のDSIの容量で見積もってください。 全バックアップデータをディスク上に保持する場合は、全DSI容量となります。バックアップデータをテープ装置などにバックアップする場合は、一時的に保持するバックアップデータのファイルサイズになります。 |
アーカイブログファイル | メディアリカバリを実施する前に、アーカイブログファイルをすべてディスクに保持することが必要です。したがって、アーカイブログファイルをテープ装置などにバックアップして運用している場合、そのアーカイブログファイルのサイズのディスク容量が必要になります。 |
コアファイル | Symfoware/RDBが異常となってダウンしたときに出力される調査用のコアファイルです。Symfoware/RDBやコマンドが使用するメモリ量で見積もることができます。最大量は、マシンに実装されるメモリ量とスワップ域サイズの合計になります。 |
メッセージログファイル | Symfoware/RDBが出力するエラーメッセージやインフォメーションメッセージのファイルです。RDB構成パラメタファイルのRDBREPORTSIZEに指定したサイズの2倍が使用量になります。 |
アプリケーションの入出力ファイル | アプリケーションごとに入出力ファイルのサイズを見積もってください。 |
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の算出に使用します。 上記のうちSize15、 Size16およびSize18において、さらに以下の見積りが必要です。 |
データベースの更新系コマンド | rdbsuloader | 作業用領域として必要な容量の見積りを以下に示します。 インデックスのDSIのソート作業域のサイズの見積りを以下に示します。 これらは、上記のSize1およびSize2の算出に使用します。 上記のうちSize3において、さらに以下の見積りが必要です。 |
データベースの再編成コマンド | 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において、さらに以下の見積りが必要です。
|
RDBディクショナリの再編成コマンド | rdbgcdic | 作業用領域として必要な容量の見積りを以下に示します。 ワークファイルのサイズ = RDBディクショナリのサイズ / 10 |
データベースのメディアリカバリ | rdbadjrcv | 作業用領域として必要な容量の見積りを以下に示します。 テンポラリログファイルのAIログ域見積りサイズ * 2 |
rdbmrrcv | 作業用領域として必要な容量は、テンポラリログファイルのAIログ域見積りと同じです。 |
rdbrcv | 作業用領域として必要な容量の見積りを以下に示します。 リカバリ対象が表のDSI、かつ、f baseオプション を指定した場合 リカバリ対象の表のDSIに定義しているインデックスのDSIごとにソート作業域を見積もり、その中で最大のサイズで見積もってください。 リカバリ対象が表のDSI、かつ、関連するインデックスのDSIが存在しない場合 テンポラリログファイルのAIログ域見積りと同じです。 リカバリ対象が表のDSI、かつ、関連するインデックスのDSIが存在する場合 以下の2つの値のうち、大きい方で見積もってください。 インデックスのDSIのソート作業域のサイズの見積りを以下に示します。 表のDSIがSEQUENTIALまたはOBJECTの場合 表のDSIがRANDOMであり、かつインデックスの構成列が一意性制約に対応する場合 ソート作業域のサイズ = (Size2 * 2 + Size3) * レコード件数 Size2 : インデックスを構成する列の長さの合計サイズ Size3 : クラスタキーを構成する列の長さの合計サイズ 表のDSIがRANDOMであり、かつインデックスの構成列が一意性制約に対応しない場合 ソート作業域のサイズ = (Size4 * 2 + Size5 * 2) * レコード件数 Size4 : インデックスを構成する列の長さの合計サイズ Size5 : クラスタキーを構成する列の長さの合計サイズ
上記のうちSize1、Size2、Size3およびSize5において、さらに以下の見積りが必要です。
|
rdbrcvdic | 作業用領域として必要な容量は、テンポラリログファイルのAIログ域見積りと同じです。 |
最適化情報の設定 | rdbups | 以下の場合、作業域は使用されません。 したがって、作業域量は、本コマンドの処理対象のインデックスの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ログ域のサイズの見積り式については、“C.6 テンポラリログファイルの見積り式”を参照してください。