暗黙的に定義された表スペース
既存の表スペース名を指定していない CREATE TABLE ステートメントを発行すると、Db2 は暗黙的に増加対応パーティションまたは範囲パーティション表スペース作成します。
Db2 がテーブルスペースを暗黙的に定義すると、テーブル用の暗黙的に作成されたテーブルスペースが生成されます。
- 既にその名前を持っている他の表スペースおよび索引スペースがデータベース内に存在しない。
- 表名の長さが 8 文字以下である。
- 文字がすべて英数字であり、最初の文字が数字ではない。
しかし、データベース内の別の表スペースが既に表と同じ名前を持っている場合、Db2 は、xxxxnyyy という形式の名前を割り当てます。ここで、xxxx は表名の最初の 4 文字であり、nyyy は固有性を保証する 1 桁の数字および 3 つの文字です。
IN データベース句が指定されていない場合、 Db2 DSN xxxxx という名前のデータベースを生成します。ここで、 xxxxx は 5 桁の数字です。
- IN database-name 文節が指定されていません。
- IN database-name 文節が指定されており、表レコード長がデータベース・バッファー・プールのページ・サイズに適合していません。
CREATE TABLE 文で PARTITION BY 節を省略するか、PARTITION BY SIZE を指定した場合、 Db2 は CREATE TABLESPACE 文のパーティショニング・バイ・グロース仕様のデフォルト値を使用します。 CREATE TABLE 文で PARTITION BY(RANGE キーワードの有無は問わない)と、列値のセットをパーティショニング制限キーとして指定した場合、 Db2 はパーティショニング・バイ・レンジ指定のデフォルト値を使用します。
暗黙的に作成された表スペースの他の属性の場合、それらが CREATE TABLE ステートメントで指定されていない場合 (一部のみ指定できる場合)、結果は、以下の属性を除いて、明示的な CREATE TABLESPACE ステートメントと同じになります。
| 表スペース属性 | 判別方法 |
|---|---|
| COMPRESS | CREATE TABLE ステートメントで指定されていない場合、値は IMPTSCMP サブシステム・パラメーターによって決定されます。 |
| 定義 | 常に、IMPDSDEF サブシステム・パラメーターの値によって決定されます。 |
| DSSIZE | CREATE TABLE ステートメントで指定されていない場合、値は IMPDSSIZE サブシステム・パラメーターによって決定されます。 |
| LOCKMAX | LOCKMAX SYSTEM が常に使用されます。 |
| LOCKSIZE | LOCKSIZE ROW が常に使用されます。 |
| PAGENUM | CREATE TABLE ステートメントで指定されていない場合、値は PAGESET_PAGENUM サブシステム・パラメーターの値によって決定されます。 |
| SEGSIZE | 範囲パーティション表スペースでは、SEGSIZE 32 が常に使用されます。 |
| TRACKMOD | CREATE TABLE ステートメントで指定されていない場合、値は IMPTKMOD サブシステム・パラメーターによって決定されます。 |
特定の状況下では、 Db2 はLOBテーブルスペース、LOB列用の補助テーブルおよび補助インデックス、XML列用のXMLオブジェクトを暗黙的に作成することもできます。 詳細は、「LOBテーブルスペースの暗黙的な作成 」および 「XMLテーブルスペースの暗黙的な作成 」を参照してください。 この場合、 Db2 はデフォルトのストレージグループであるSYSDEFLTを使用します。
Db2 は、次のオブジェクトも作成します。
- UNIQUE制約用のユニークインデックス。
- 主キー索引。
- ROWID 列が GENERATED BY DEFAULTとして定義されている場合、ROWID 索引。
Db2 は、表スペースを明示的に定義するか、または Db2 が暗黙的に作成するかに関係なく、SYSIBM.SYSTABLESPACE カタログ表にすべての表スペースの名前および属性を保管します。