• 検索結果がありません。

¾ TEMPORARY

ドキュメント内 データベース物理設計【DB2 9.5 対応版】 (ページ 97-114)

表スペースの種類と選択

‡ 適切な表スペースを選択する

z ファイル管理のタイプによる表スペースの種別

¾ SMS:オペレーティング・システムのファイル・システムによるファイル管理

¾ DMS:データベース・マネージャーによるファイル管理

z 保管データのタイプによる表スペースの種別

¾ LARGE(V9以降のDMS表スペースのデフォルト)

– V8以前:LOB、LONGデータ、索引用

– V9以降:通常のデータ、LOB、LONGデータ、索引用

¾ REGULAR(V9以降のSMS表スペースのデフォルト、V8以前のDMS/SMS表スペースのデフォ ルト)

通常のデータ、索引用

解説

‡

ファイル管理のタイプにより、以下のいずれかのタイプを指定します。

(それぞれの詳細は後述)

z

SMS(System Managed Storage)

¾ 各オペレーティング・システムのファイル・システムがファイルを管理します。

¾ コンテナーとしては、ディレクトリーを設定します。

z

DMS(Database Managed Storage)

¾ データベース・マネージャーがファイルを管理します。

¾ コンテナーとしては、ファイル、またはデバイスを設定します。

‡

保管データのタイプにより、以下のいずれかのタイプを指定します。

z LARGE表スペース

¾ すべての永続データを保管します。このタイプは、データベース管理スペース(DMS) 表スペースでのみ使用できます。また、タイプを指定しな い場合の、DMS 表スペースのデフォルト・タイプでもあります。LARGE 表スペースに表を配置すると、以下のようになります。

– REGULAR 表スペースに配置する表よりもサイズを大きくできます。

表のデータ・ページ当たり、255 を超える行数をサポートできるので、データ・ページのスペース使用効率が向上します。

– REGULAR 表スペースに配置した表に索引を定義する場合に比べ、索引の1 つの行項目当たり2 バイトが追加で必要になります。

z REGULAR表スペース

¾ すべての永続データを保管します。このタイプは、DMS 表スペースとSMS 表スペースのいずれも指定可能です(SMS 表スペースでのデフォ ルト・タイプです)。

z TEMPORARY表スペース

¾ システム一時表スペース

– JoinやSortで一時的にデータが入る表スペースです。

システム一時表スペースは、データベースに最低一つは必要です。一つしかない時には、削除しようとするとエラーとなります。

– 4KB以外のページを持つ表スペースがある場合、そのページに合せた一時表スペースも作っておいて下さい。

¾ ユーザー一時表スペース

省略時にはデータベース作成の時点で作成されません。Global Temporary Tableが使用する表スペースです。

‡ 4KB以外のページを持つ表スペース(表)がある場合、そのページに合せた一時表スペースも作っておいて下さい。

z

V8.2.2からは、データベース作成時にデフォルトのページ・サイズを指定できるようになりました。これにより、4KB以外のペー

ジ・サイズを使用する場合でも、データベース内の表スペース、バッファープールのページ・サイズを統一することができます。

‡

参考:Global Temporary Table(ユーザー定義一時表)

z アプリケーションは、データベースに接続している間、一時的な表を作成して使用できます。

z 一時表を定義するには、DECLARE GLOBAL TEMPORARY TABLE ステートメントを使用します。

z ユーザー定義一時表が保持されるのは、 アプリケーションがデータベースから切断されるまでの間だけです。 アプリケーショ

DMS表スペースとSMS表スペース

‡ パフォーマンス

z DMSローデバイス>DMSファイル>SMS

¾ 表用、索引用、長形式のデータ用の表スペースを別々に作成できる

¾ Solaris環境では、パフォーマンス重視のデータにはロー・デバイスを含む DMS 表スペースを使用することを推奨

‡ 管理の容易さ

z SMS>DMS

¾ SMSは、同じファイルシステムに複数表スペースを作成でき、表スペースご

とに空きスペースの監視を行う必要がない

‡ 領域のアロケーション

z SMS: エクステント単位(V8.2以降)

ページ単位(V8.1まで)

z DMS: エクステント単位

解説

‡ 3つの表スペースを比較した場合、通常パフォーマンスは以下のようになります。

z DMSローデバイス>DMSファイル>SMS

‡ ローデバイスとファイルDMSの差はそれほど大きくありませんが、DMSとSMSではパフォーマンスに大 きな差が出る場合があります。

‡ Solaris(TM) では、パフォーマンス重視のワークロード用にはロー・デバイスを含む DMS 表スペース を使用することが強く勧められています。

‡ DMSはSMSに比べて、表用、索引用、長形式のデータ用の表スペースを別々に作成できるため、そ

れぞれのディスクI/Oを分散させることが可能です。これによってディスクI/Oを効率化し、パフォーマ ンスを向上することが可能です。

‡ DMSでは、データ挿入時にエクステント単位でデータが書き込まれます。また、そのエクステントは、

既に容量を確保して作成されたDMSファイルまたはローデバイスの中に書き込みます。この時、DMS ファイルやローデバイス自身の大きさは変わりません。

‡ SMSでは、表のスペースは要求時に割り振られますので、DMSに比べて特に大量データの挿入に関

してパフォーマンスが劣ります。一度に割り振られるスペースの量は、multipage_alloc データベース構 成パラメーターの設定によって左右されます。この構成パラメーターが YES に設定されている場合、

スペースが必要なときにはエクステント全体 (通常は複数のページで構成される) が割り振られます

(マルチページ・ファイル割り振り)。それ以外の場合は、一度に 1 ページのスペースが割り振られま

す。 V8.2以降では、マルチページ・ファイル割り振りはデフォルトで使用可能です。V8.2 より前は、構

成パラメーターのデフォルト設定が NO であったため、一度に 1 ページしか割り振ることができません

でした。このデフォルトは、マルチページ・ファイル割り振りを使用できるようにする db2empfa ツール

を使用して変更できました。 db2empfa を実行すると、multipage_alloc データベース構成パラメーター

参考:エクステント

‡

エクステント

z 表スペースにおけるコンテナ内の領域の割り振り単位(ページ)

¾

DMS、V8.2以降のSMSは、一度にエクステント全体をアロケートし、その後でエクステント内のページを使用

¾

V8.1までのSMSは、エクステント・サイズの値になるまで一度に1ページずつアロケートする

‡

データはラウンド・ロビン方式でコンテナに書き込む

‡ DMSのコンテナーで最小限必要なスペース (最初のオブジェクトを作成した時) = 5エクステント + 1ページ

‡

エクステント・サイズは、表スペース作成時に指定(デフォルトは32ページ)

z 多数の小さい表からなる表スペースは、サイズを減らすことも検討

z 大量の結果行を返す照会を行う表や急激に拡張される表からなる表スペースは、サイズを増やすことも検討 z 作成後は変更が出来ない

4K

Extent = 32ページ (デフォルト) コンテナ 0

0 2

コンテナ1

1 3

表スペース A エクステント

コンテナ コンテナ エクステント エクステント ページ ページ

SMS表スペース

‡ SMS(System Managed Storage)表スペース

z オペレーティング・システムのファイル・システム・マネージャーが管理

z 表データと索引、Longデータは全て同じ表スペースを共有

z 管理が容易

z コンテナーはディレクトリー

z ファイルは動的に拡張し、サイズの上限は以下によって決まる

¾ コンテナーの数

¾ ファイル・システム/ドライブ/ファイルのOSの限界サイズ

z コンテナーは動的に追加不可

¾ ファイル・システム/ドライブのサイズは増加可能

¾ 再定義は表スペース復元時に可能(表スペースのリダイレクション)

¾ 各コンテナーサイズは同じ大きさに

z 一時表スペースに推奨

解説

‡ SMSの特徴

z SMSでは、表スペースはファイルシステムのディレクトリに相当し、表や索引はそれぞれ別々

のファイルになります。SMS表スペース(ディレクトリ)を作成したファイルシステムが許す限り、

表に対してデータを追加することができます。つまり、表スペースの大きさはファイルシステム の大きさに依存します。

z SMSでは表や索引およびLOBやLONG VARCHARなどの長形式のデータを含むロング形式の

データを全て同じ表スペースに格納する必要があります。

z 複数のディスクにIOを分散させる為に、1つの表スペースに対してコンテナーを複数定義する ことがSMSでも可能ですが、コンテナーの追加や削除を行うことはできません。表スペースを 作成するときのコンテナー定義を変更する為には、一度削除して再作成する必要があります。

z 複数コンテナーによってSMS表スペースを作成した場合、どれかのファイルシステムが一杯に

なると表スペースはそれ以上のデータを追加することができなくなります。

DMS表スペース

‡ DMS(Database Managed Storage)表スペース

z データベース・マネージャーが記憶スペースを管理

z 作成時にスペースを割り当て

z コンテナーはファイル、デバイス

¾ ファイルの操作に対してはファイル・システムI/Oを使用

¾ ロー・デバイスの操作に対しては直接I/Oを使用

z 柔軟なデータ配置

¾ 表用、索引用、および長形式のデータ用の表スペースを別々に作成する ことが可能

¾ ディスクのIOを複数の物理ディスクに分散させることが可能

z コンテナの追加/削除/拡張/縮小が可能

¾ データは自動的に再バランス(オプションにより再バランスさせないことも 可)

z 高パフォーマンス

ドキュメント内 データベース物理設計【DB2 9.5 対応版】 (ページ 97-114)