管理の手引き


表スペース所要量の見積もり

データベース・オブジェクトのサイズは、正確に見積もることができません。 サイズの見積もりを難しくする原因は、 ディスクの断片化によって発生するオーバーヘッド、空きスペース、 および可変長列の使用などです。 これは、列タイプや行の長さが広い範囲で異なる可能性があるためです。 まずデータベースのサイズを見積もってから、 テスト・データベースを作成し、それに標準的なデータを入れてみてください。

コントロール・センターからは、 さまざまなデータベース・オブジェクトのサイズ所要量の決定に役立つ 次のようなユーティリティーにアクセスできます。

このいずれの場合も、「SQL の表示 (Show SQL)」ボタンまたは 「コマンドの表示 (Show Command)」ボタンのどちらかが使用できます。 また、結果として生成される SQL ステートメントまたはコマンドを スクリプト・ファイルに保管し、後で使用することもできます。 これらのすべてのユーティリティーにはオンライン・ヘルプがあります。

物理データベース要件の計画の際には、 これらのユーティリティーを念頭に置いてください。

データベースのサイズ見積もりを行う時、以下の要素を考慮する必要があります。

以下に関するスペース所要量については、説明を省略します。

システム・カタログ表

データベースが作成されると、システム・カタログ表も作成されます。 システム表は、データベース・オブジェクトと特権がデータベースに追加されるたびに増加します。 最初の時点では、約 3.5 MB のディスク・スペースが使用されます。

カタログ表に割り当てられるスペースの量は、表スペースのタイプとカタログ表が含まれる表スペースのエクステント・サイズによって異なります。 たとえば、エクステント・サイズが 32 の DMS 表スペースを使用した場合、 最初の時点ではカタログ表に 20 MB のスペースが割り振られます。 詳しくは、表スペースの設計と選択を参照してください。
注:複数区画を持つデータベースの場合、 カタログ表は CREATE DATABASE の発行元の区画上にのみ存在します。 カタログ表のディスク・スペースは、その区画のためだけに必要です。

ユーザー表データ

デフォルトでは、表データは 4 KB のページに格納されます。 各ページ (ページ・サイズは関係ない) には、76 バイトからなる データベース・マネージャー用のオーバーヘッドが含まれます。 そのため、ユーザー・データ (つまり行) を入れるのに 4020 バイトが残されています。 ただし 4 KB のページ上のいずれの行も、長さ 4005 バイトを超えてはなりません。 1 つの行が複数のページにまたがることはありません。 ページ・サイズが 4 KB の場合、使用できる列の数は最大で 500 です。

表データ・ページには、 LONG VARCHAR、 LONG VARGRAPHIC、 BLOB、 CLOB、 および DBCLOB データ・タイプとして定義された 列のデータは含まれません。 ただし、それらの列の記述子は含まれます。 (これらのデータ・タイプを含む表オブジェクトに必要なスペースの見積もりについては、 長形式フィールドのデータおよび ラージ・オブジェクト (LOB) データを参照してください。)

通常、行は先頭一致順で表に挿入されます。 ファイルの中から、 新しい行を保持できる最初の使用可能なスペースが (空きスペース・マップを使って) 検索されます。 行が更新されると、4 KB ページ上に十分なスペースがある限り、 行は元の場所のままで更新されます。 この場合には、オリジナルの行位置にレコードが 1 つ作成され、 更新された行の表ファイルの中の新しい位置を指し示します。

ALTER TABLE APPEND ON ステートメントが呼び出されると、 データは常に追加され、データ・ページの空きスペースについての情報は保持されません。 このステートメントについての詳細は、SQL 解説書 を参照してください。

4 KB ページ数を見積もるには、 データベース内のそれぞれのユーザー表ごとに、以下のように計算します。

   ROUND DOWN(4020/(平均行サイズ + 10)) = records_per_page

上の結果を以下の式に代入します。

   (number_of_records/records_per_page) * 1.1 = number_of_pages

ここで平均行サイズは平均列サイズの合計です (各列のサイズについては、 SQL 解説書 で CREATE TABLE ステートメントを参照)。 また 1.1 はオーバーヘッド因数です。
注:この式はあくまでも見積もりの算出です。 断片化やオーバーフロー・レコードのためにレコード長にばらつきがある場合、 この見積もりの精度は低下します。

ページ・サイズが 8 KB、16 KB、 または 32 KB のバッファー・プールまたは表スペースを作成するためのオプションもあります。 特定サイズの表スペース内に作成される表にはすべて、一致するページ・サイズが指定されます。 単一の表または索引オブジェクトのサイズは、 (32 KB のページ・サイズを想定すると) 最大 512 GB まで可能です。 ページ・サイズが 8 KB、16 KB、または 32 KB の場合、使用できる列は最大で 1012 です。 4 KB ページ・サイズの場合、列の最大数は 500 です。 行の最大長は、ページ・サイズに応じて以下のように異なります。

ページ・サイズを大きくすると、索引のレベルの数を減少させることができます。 行のランダム読み取りおよび書き込みを 行う OLTP (オンライン・トランザクション処理) アプリケーションを使用する場合は、 不必要な行に使用するバッファー・スペースが少なくなるので、 ページ・サイズは小さい方が望ましいです。 一度に多くの連続した行にアクセスする DSS (意思決定 支援システム) アプリケーションを使用する場合は、 指定された数の行を読み取るのに必要な入出力要求の数が減るので、 ページ・サイズは大きい方が望ましいです。 ただし、 ページ・サイズを 255 で割った数字よりも行サイズが小さいときは例外です。 このような場合は、各ページに無駄なスペースが生じます。 (1 ページの行数は、最大で 255 であることを思い起こしてください。) 無駄なスペースを少なくするために、ページ・サイズは小さい方がふさわしいでしょう。

バックアップを異なるページ・サイズに復元することはできません。

756 列以上を表す IXF データ・ファイルをインポートすることはできません。 表へのデータのインポートについて、および IXF データ・ファイルについて詳しくは、 データ移動ユーティリティー 手引きおよび解説書 を参照してください。

宣言済み一時表は、 独自の「ユーザー一時」表スペース・タイプの中にのみ作成されます。 デフォルトのユーザー一時表スペースはありません。 一時表には LONG データを入れることはできません。 これらの表は、 アプリケーションがデータベースから切断すると暗黙的に除去されます。 これらのスペース所要量を見積もる際には、この点を考慮に入れる必要があります。

長形式フィールドのデータ

長形式フィールド・データは、他のデータ・タイプとは構造が異なる、 別個の表オブジェクトに格納します (ユーザー表データおよび ラージ・オブジェクト (LOB) データを参照してください)。

データが格納される 32 域は、「2 の累乗」 × 512 バイトのサイズのセグメントに分割されます。 (このため、これらのセグメントは、512 バイト、1024 バイト、2048 バイトというように、最高 32,700 バイトまでが可能です。)

長形式フィールド・データ・タイプ (LONG VARCHAR または LONG VARGRAPHIC) は、 空きスペースを容易に再利用できるような方法で保管されます。 割り振りと空きスペースに関する情報は 4 KB の割り振りページに格納されますが、 オブジェクト中はさほど頻繁には見られません。

オブジェクト内の未使用スペースの量は、長形式フィールド・データのサイズと、 そのサイズがデータのすべてのオカレンスを通じてある程度一貫しているかどうかによって決まります。 255 バイトを超えるデータ入力項目の場合、未使用のスペースは、 長形式フィールド・データのサイズの 50% に達することもあります。

文字データの長さがページ・サイズより短く、 データの残りの部分と一緒にレコードの中に収まる場合には、 CHAR、GRAPHIC、VARCHAR、または VARGRAPHIC の各データ・タイプを、 LONG VARCHAR または LONG VARGRAPHIC の代わりに使用する必要があります。

ラージ・オブジェクト (LOB) データ

ラージ・オブジェクト (LOB) データは、他のデータ・タイプとは構造が異なる、 2 つの別個の表オブジェクトに格納されます (ユーザー表データおよび 長形式フィールドのデータを参照してください)。

LOB データに必要なスペースを見積もるには、 これらのデータ・タイプで定義されたデータを格納するための、 次のような 2 つの表オブジェクトについて考慮する必要があります。

文字データの長さがページ・サイズより短く、 データの残りの部分と一緒にレコードの中に収まる場合には、 CHAR、GRAPHIC、VARCHAR、または VARGRAPHIC の各データ・タイプを、 BLOB、CLOB、または DBCLOB の代わりに使用する必要があります。

索引スペース

各索引に必要なスペースは、次のようにして見積もることができます。

   (平均索引キー・サイズ + 8) × 行数 × 2

ここで、

注:ヌル値が可能な列の場合は、ヌル値標識のために 1 バイトをさらに追加してください。

索引の作成時には一時スペースが必要になります。 索引作成時に必要な一時スペースの最大量は、次のようにして見積もることができます。

   (平均索引キー・サイズ + 8) × 行数 × 3.2

ここで 3.2 は索引オーバーヘッドの因数、 および索引の作成時のソートに必要なスペースの因数です。
注:非固有索引の場合、重複キー項目を保管するために、4 バイトだけが必要です。 上記に示した見積もりは、重複がないものと想定しています。 1 つの索引を保管するために必要なスペースは、 上記の式では余分に見積もってしまう場合があります。

葉ページの数を見積もるために、 以下の 2 つの式を使用できます (2 番目の方がより正確な見積もりが可能です)。 これらの見積もりの精度は、 平均値がどの程度うまく実際のデータを反映しているかに大きく依存しています。
注:SMS の場合、必要な最小スペースは 12 KB です。 DMS の場合、最小は 1 エクステントです。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]