表スペースの作成
多くの場合、表を作成する前に表スペースを作成する必要はありません。 宣言済み一時表を定義するとき、またはすべての独自データ・セットを管理する場合に限り、明示的に表スペースを作成する必要があります。
ユニバーサル表スペースの利点
ユニバーサル (UTS) 表スペース は、データ・パーティションとセグメント化された組織のメリットを結合します。 各 UTS には、常に単一のテーブルのみが含まれます。
非推奨の非UTS型と比較した場合、ユニバーサルテーブルスペースには以下の利点があります
- パーティショニング方式の選択:
- データ値の範囲に基づくパーティション、 パーティション・バイ・レンジ・テーブル・スペース (PBR)
- データ成長に基づくパーティションで、 Db2 によって自動的に管理され、 成長ベースのパーティションテーブルスペース (PBG)を使用
- セグメント化されたスペース・マップ・ページに、パーティション化されたスペース・マップ・ページよりも多くのフリー・スペースに関する情報があるため、可変長行のスペース管理が改善されました。
- セグメント化表スペース編成での一括削除は、非セグメント化表スペース編成での一括削除よりも高速になる傾向があるため、一括削除のパフォーマンスが向上します。
- セグメントにローカライズされた表スキャン。
- 表のドロップまたは一括削除後に、表のセグメントのすべてまたは大部分が即時に再利用されます。
表スペース・タイプの比較
以下の表は、Db2 for z/OS® がサポートする各種の表スペース・タイプの特性を比較したものです。
| タイプ | セグメント化 | パーティション化 | 注釈 |
|---|---|---|---|
| パーティション・バイ・レンジ・テーブル・スペース(PBR UTS) | はい | はい (データ値の範囲に基づく) | 絶対ページ番号または相対ページ番号(RPN)を使用できます。 以下の属性キーワードはPBRテーブル空間を区別する:
|
| パーティション・バイ・グロース・テーブルスペース(PBG UTS) | はい | はい (データの増加に基づく) | 以下の属性キーワードはPBGテーブル空間を区別する:
|
| LOB 表スペース | いいえ | いいえ | LOB 列のデータを含む補助表の場合。 |
| XML 表スペース | はい | はい (基本表のパーティション方式に基づく) | XML データ用に暗黙的に作成される UTS 表スペース。 |
| パーティション化 (非 UTS) 表スペース | いいえ | はい。 | このタイプは非推奨です。 1 |
| セグメント化 (非 UTS) 表スペース | はい | いいえ | このタイプは非推奨です。 1 |
| SIMPLE 表スペース | いいえ | いいえ | このタイプは非推奨です。2 |
注:
- ベーステーブル用の非UTSテーブルスペースは非推奨です。 アプリケーション互換性レベル以上で実行されるCREATE TABLESPACE文は、 V12R1M504、常にパーティショニング・バイ・グロースまたはパーティショニング・バイ・レンジのテーブルスペースを作成します。また、非UTSテーブルスペース(既存のマルチテーブル・セグメント化テーブルスペースを含む)を指定したCREATE TABLE文はエラーを返します。 ただし、必要であれば、復旧時など、より低いアプリケーション互換性レベルを使用して、非推奨のタイプのテーブルスペースを作成することができます。 手順については、「UTS以外のテーブルスペースの作成(非推奨 )」を参照してください。
- Db2 13 では、単純な表スペースの作成はサポートされていません。 既存の単純な表スペースは引き続きサポートされますが、将来はサポートされなくなる可能性があります。
- パーティショニングされた(非UTS)テーブル・スペースは、インデックス制御パーティションまたはテーブル制御パーティションのいずれかを使用できます。 インデックス制御パーティションを使用しているテーブル・スペースは、UTSに変換する前に、テーブル制御パーティションを使用するように変換する必要があります。 詳細は、 テーブル・スペースを変換してテーブル制御パーティショニングを使用するを参照してください。
表スペースの暗黙的な作成
Db2 CREATE TABLE ステートメントを発行する際に既存のテーブルスペース名を指定しない場合、テーブルスペースは暗黙的に作成されます。 Db2 テーブルスペース名をテーブル名から取得します。 テーブルスペースは、指定されたデータベース内に作成されます。データベースが指定されていない場合は、暗黙的に作成されたデータベース内に作成されます。 詳細は、「暗黙的に定義されたテーブルスペース 」を参照してください。
表スペースの明示的な作成
表スペースを明示的に作成する必要がある場合は、CREATE TABLESPACE ステートメントを発行できます。
表スペースを作成または変更する場合、CREATE TABLESPACE または ALTER TABLESPACE ステートメントで指定する文節によって、表スペースのタイプが決まります。 詳細は、「テーブル空間の明示的な作成 」を参照してください。