表スペースの種類と選択
適切な表スペースを選択する
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 作成後は変更が出来ない