CREATE TABLESPACE ステートメント

CREATE TABLESPACE ステートメントは、現行サーバーの表スペースを定義します。 表スペースのタイプは、指定されたキーワードによって異なります。

指定されたキーワードに応じて、結果は範囲によるパーティショニングまたは成長によるパーティショニングのテーブルスペースとなります。

作業ファイル・データベースに表スペースを作成する際の規則と制約事項については、作業ファイル・データベース内の表スペースを参照してください。

大規模オブジェクト(LOB)テーブルスペースの作成方法については、「CREATE LOB TABLESPACE」 を参照してください。

Db2は、表を作成または変更して XML 列を追加するときに、XML 表スペースを暗黙的に作成します。 詳細は、「XMLテーブル空間の暗黙的作成 」を参照してください。

呼びかけ CREATE TABLESPACE

このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。 これは、DYNAMICRULES RUN動作が有効になっている場合にのみ、動的に準備できる実行可能なステートメントです。 詳細は、「Authorization IDs and dynamic SQL」 を参照してください。

承認 CREATE TABLESPACE

以下に定義する特権セットには、少なくとも次のいずれかが含まれていなければいけません。

  • データベースに対する CREATETS 特権
  • データベースに対する DBADM、DBCTRL、または DBMAINT 権限
  • SYSADM または SYSCTRL 権限
  • システム DBADM
  • インストール SYSOPR 権限 (プロセスの現行 SQLID が SYSINSTL に設定されている場合)

データベースが暗黙的に作成される場合、データベース特権は暗黙的なデータベースまたは DSNDB04 上になければなりません。

上記以外の特権が必要になることもあります。この点については、BUFFERPOOL 文節および USING STOGROUP 文節のところで説明します。

特権セット:

ステートメントがアプリケーションプログラムに組み込まれている場合、特権セットは、プランまたはパッケージの所有者が持っている特権です。 アプリケーションが、ROLE AS OBJECT OWNER 文節が指定されたトラステッド・コンテキスト内にバインドされている場合、ロールが所有者となります。 それ以外の場合は、許可 ID が所有者となります。

このステートメントが動的に準備される場合、特権セットは、プロセスの SQL 許可 ID が持つ特権となります。ただし、プロセスがトラステッド・コンテキスト内にあり、ROLE AS OBJECT OWNER 文節が指定された場合を除きます。 その場合には、特権セットは、プロセスの 1 次許可 ID と関連するロールが持つ特権となります。

構文 CREATE TABLESPACE

構文図を読むビジュアルシンタックスダイアグラムをスキップする CREATE TABLESPACE table-space-name 1INDSNDB04INdatabase-nameBUFFERPOOLbpname増加対応パーティション仕様 (partition-by-growth-specification)範囲によるパーティション指定 (partition-by-range-specification)2DPSEGSZパラメータ3SEGSIZE整数CCSIDASCIIEBCDICUNICODECLOSE YESCLOSE NOCOMPRESS NOCOMPRESS YESCOMPRESS YES FIXEDLENGTHCOMPRESS YES HUFFMANDEFINE YESDEFINE NOfree-blockgbpcache-blockINSERT ALGORITHM0INSERT ALGORITHMレベルLOCKMAXSYSTEM整数locksize-blockLOGGEDNOT LOGGEDMAXROWS整数MEMBER CLUSTERTRACKMODimptkmodパラメータ4TRACKMOD YESTRACKMOD NOusing-blockFOR SORTFOR DGTT
注:
  • 1 同一の条項は、複数回指定してはならない。
  • 2 CREATE TABLESPACE文がアプリケーション互換性レベル以下で実行される場合、 V12R1M503、非UTS分割テーブル空間またはパーティション化テーブル空間を作成するには、非推奨の仕様を使用できます。 非UTSテーブルスペースの作成(非推奨) を参照してください。
  • 3 デフォルトの SEGSIZE 値は、DPSEGSZ サブシステムパラメータによって制御されます。
  • 4 imptkmod-parameter は、IMPTKMOD サブシステムパラメータの値です。 詳細は、マクロ DSN6SYSP のIMPTKMOD を参照してください。

パーティション・バイ・グロース・スペシフィケーション

構文図を読むビジュアルシンタックスダイアグラムをスキップするMAXPARTITIONS2541MAXPARTITIONS整数NUMPARTS1整数DSSIZE整数2G
注:
  • 1 同一の条項は、複数回指定してはならない。
  • 2 1~256 の範囲で2のべき乗の整数を指定するか、MAXPARTITIONS の値とバッファ・プールのページ・サイズに基づくデフォルト値を受け入れる。 表2 を参照。

範囲による仕切り指定:

構文図を読むビジュアルシンタックスダイアグラムをスキップする NUMPARTS 整数 1(,PARTITION整数2using-blockfree-blockgbpcache-blockCOMPRESS NOCOMPRESS YESCOMPRESS YES FIXEDLENGTHCOMPRESS YES HUFFMANIMPTKMOD-パラメータ3TRACKMOD YESTRACKMOD NODSSIZE4 G4DSSIZE整数G)PAGENUMページセットページ番号パラメータ5PAGENUM RELATIVEPAGENUM ABSOLUTE46DSSIZE整数G7
注:
  • 1 複数のPARTITION句をグループ化する。 他の節を複数回指定することはできません。
  • 2 同一の条項は、複数回指定してはならない。
  • 3 IMPTKMOD サブシステムパラメータは、デフォルトの TRACKMOD オプションを指定した。 詳細は、マクロ DSN6SYSP のIMPTKMOD を参照してください。
  • 4 PAGENUM RELATIVE が有効な場合のみ、パーティションレベルでの DSSIZE を指定できます。
  • 5 PAGENUM句を省略した場合、PAGESET_PAGENUM Db2 サブシステムパラメータで指定された値を使用します。 PAGESET_PAGENUM のデフォルトは RELATIVE です。 ページ設定ページ番号付けフィールドを参照(PAGESET_PAGENUM サブシステムパラメータ)
  • 6 PBRテーブルスペースでは絶対ページ番号付けは非推奨です。
  • 7 PAGENUM RELATIVEを使用する場合、1~1024の範囲の整数を指定するか、デフォルト値 4G を受け入れる。 絶対ページ番号を使用する場合は、1~256の範囲で2のべき乗の整数を指定するか、NUMPARTSの値とバッファプールページサイズに基づくデフォルト値を受け入れます。 表3 を参照。

フリーブロック:

構文図を読むビジュアルシンタックスダイアグラムをスキップするFREEPAGE 0FREEPAGE整数PCTFREE 5PCTFREEsmallintsmallintFOR UPDATEsmallint12
注:

gbpcache-block:

構文図を読むビジュアルシンタックスダイアグラムをスキップするGBPCACHE CHANGEDGBPCACHE ALLGBPCACHE SYSTEMGBPCACHE NONE

ロックサイズ・ブロック:

構文図を読むビジュアルシンタックスダイアグラムをスキップするLOCKSIZE ANYLOCKSIZE TABLESPACELOCKSIZE PAGELOCKSIZE ROW

使用ブロック:

構文図を読むビジュアルシンタックスダイアグラムをスキップする USING VCATcatalog-nameSTOGROUPstogroup-namePRIQTY -1PRIQTY 整数SECQTY -1SECQTY 整数ERASE NOERASE YES1
注:
  • 1 同一の条項は、複数回指定してはならない。

説明の対象: CREATE TABLESPACE

table-space-name
表スペースの名前を指定します。 IN句で暗黙的または明示的に指定されたデータベース名を修飾する名前は、現在のサーバーに存在するテーブルスペース、インデックススペース、またはLOBテーブルスペース、あるいはSYSPENDINGOBJECTSカタログテーブルに存在するテーブルスペース、インデックススペース、またはLOBテーブルスペースを識別するものであってはなりません。

宣言済み一時表のための表スペースは、作業ファイル・データベース内になければなりません。 PUBLIC は、作業ファイル・データベース内に作成された表スペースに対する USE 特権 (GRANT 権限なし) を 暗黙的に受け取ります。 この暗黙の特権は Db2 カタログには記録されておらず、取り消すこともできません。

IN database-name
表スペースが作成されるデータベースを指定します。 database-name には、現行サーバーに存在するデータベースを指定する必要があり 、以下のものを指定しないでください。
  • DSNDB06
  • TEMP データベース
  • 暗黙的に作成されたデータベース

この表スペースが、宣言済み一時表のための表スペース、または両方向スクロール・カーソルのための表スペースである場合、作業ファイル・データベースの名前を指定する必要があります。

データベース名がワークファイルデータベースを指している場合、テーブルスペースはパーティショニング・バイ・グロースのテーブルスペースでなければなりません。

DSNDB04 がデフォルトです。

BUFFERPOOL bpname
表スペースに使用するバッファー・プールを指定し、表スペース のページ・サイズを決定します。 ページ・バッファー・プール が 4KB、8KB、16KB および 32KB の場合、ページ・サイズは それぞれ 4 KB、8 KB、16 KB、および 32 KB になります。 bpname は、活動化されたバッファー・プールを識別するものでなければならず、特権セットに SYSADM 権限または SYSCTRL 権限、あるいはバッファー・プールに対する USE 特権が含まれていなければなりません。 ワークファイルデータベースにテーブルスペースを作成する場合は、 8KB バッファプールおよび 16KB バッファプールを指定できません。

BUFFERPOOL 節を指定しない場合は、データベースのデフォルト・バッファー・プールが使用されます。

bpname の詳細については、「SQLにおける命名規則」 を参照してください。 アクティブおよび非アクティブのバッファプールの説明については、ALTER BUFFERPOOLコマンド( Db2 ) を参照してください。

バッファー・プール・ページ・サイズは、使用できるパーティションの数に影響します。 詳細は、「パーティションの最大数とテーブルスペースのサイズ 」を参照してください。

増加対応パーティション仕様 (partition-by-growth-specification)

変更の開始パーティション・バイ・グロース(PBG UTS)テーブルスペースの作成を指定します。 FL 500 成長仕様によるパーティショニングと範囲仕様によるパーティショニングの両方が省略された場合、 MAXPARTITIONS 254 による成長テーブルスペースが作成されます。 作成するテーブルスペースの種類を制御する句の概要については、 「テーブルスペースの種類」 を参照してください。変更の終わり

MAXPARTITIONS 整数
表スペースが増加対応パーティション表スペースであることを指定します。

integer は、表スペースを拡張できるパーティションの最大数を指定します。 整数型は、DSSIZE句の対応する値に応じて、1~4096の範囲でなければなりません。 以下の表は、表スペースのページ・サイズや DSSIZE 値に対する MAXPARTITIONS の最大値を示しています。

表 1. 指定されたページ・サイズの最大 MAXPARTITIONS 値と DSSIZE 値
DSSIZE 値 4K ページ・サイズ 8K ページ・サイズ 16K ページ・サイズ 32K ページ・サイズ
1-4 G 4096 4096 4096 4096
8 G 2048 4096 4096 4096
16 G 1024 2048 4096 4096
32 G 512 1024 2048 4096
64 G 256 512 1024 2048
128 G 128 256 512 1024
256 G 64 128 256 512
詳細は、「パーティションの最大数とテーブルスペースのサイズ 」を参照してください。

最初のパーティションのスキーマ定義は常に作成され、NUMPARTS 値が指定されている場合は、データセットを最初に作成して割り当てるパーティション・スキーマ定義の数を制御します。 2 番目以降のパーティションのデータ・セットは、必要になるまで割り振られません。

物理データ・セットは MAXPARTITIONS 値に基づいて定義されませんが、ストレージと CPU のオーバーヘッドが発生する可能性があります。 MAXPARTITONS 節を使用してパーティション数の増加が予想される場合は、すべての増加対応パーティション表スペースのデフォルトとして 4096 (最大値) など、必要以上に大きい値を指定すると、予期されるストレージ要求よりも大きくなる可能性があることに注意してください。

NUMPARTS 整数
MAXPARTITIONS で指定した場合、整数値は、最初に作成するパーティション・スキーマ定義の数を指定します。 DEFINE NO が指定されていない限り、データ・セットはこの多くのパーティションに割り当てられます。 integer は、1~4096 の範囲の値でなければならず、MAXPARTITIONS 節で指定された値以下でなければなりません。

MAXPARTITIONS が指定されていない場合は、 partition-by-range-specification の NUMPARTS 節の説明を参照してください。

DSSIZE integer G
表スペース内のパーティションのデータ・セット・サイズを整数ギガバイト単位で指定します。 各パーティションは 1 つのデータ・セットを占有するため、データ・セット・サイズはパーティションの最大サイズでもあります。

DSSIZE が成長によるパーティショニングのテーブルスペースに対して指定される場合、1~256 G(1、2、4、8、16、32、64、128、または256)の範囲の2のべき乗の整数でなければなりません。

整数部は、0個以上のスペースでGと区切ることができる。

変更の開始FL 500 DSSIZE のデフォルト値は、以下の表に示すように、バッファプールのページサイズと指定された MAXPARTITIONS 値によって決まります。変更の終わり

表 2. 増加対応パーティション表スペースの DSSIZE のデフォルト
ページ・サイズ MAXPARTITIONS 値 DSSIZE のデフォルト値
任意 1~254 4 G
4K 255-4096 4 G
8K 255-4096 8 G
16K 255-4096 16 G
32K 255-4096 32 G

4 G より大きい DSSIZE 値の場合、表スペースのデータ・セットは、拡張フォーマットおよび拡張アドレッシング機能で指定された DFSMS データ・クラスに関連付けられている必要があります。

DSSIZE 値は、使用できるパーティションの数に影響します。 詳細は、「パーティションの最大数とテーブルスペースのサイズ 」を参照してください。

範囲によるパーティション指定 (partition-by-range-specification)
パーティション・バイ・レンジ(PBR UTS)テーブル空間の作成を指定します。 作成するテーブルスペースの種類を制御する条項の概要については、「テーブルスペースの種類」 を参照してください。
NUMPARTS 整数

MAXPARTITIONS を指定しない場合、範囲によるパーティション表スペースが作成されることを示します。 integer 値は、作成するパーティション・スキーマ定義の数を指定します。 DEFINE NO も指定されていない限り、データ・セットはこの数の区画にも割り振られます。 整数は、1~4096(両端を含む)の範囲内の値でなければなりません。

MAXPARTITIONSも指定されている場合は、 パーティショニング・バイ・グロース指定のNUMPARTS節の説明を参照してください。

PAGENUM RELATIVE で作成された表スペースの場合、パーティションの最大数は 4096 です。 PAGENUM ABSOLUTEが設定されている表領域では、パーティションの最大数はバッファ・プールのページ・サイズとDSSIZEに依存します。 表スペースの合計サイズは、パーティションの数と DSSIZE によって異なります。 詳細は、「パーティションの最大数とテーブルスペースのサイズ 」を参照してください。

パーティション 整数
以下のパーティション・レベルの節が適用されるパーティションを指定します。 整数 は、1 から NUMPARTS で指定されたパーティション数までの範囲で指定できます。

PARTITION 文節は、必要な回数だけ指定できます。 同じパーティション番号を複数回指定した場合には、そのパーティションについての 最後の指定だけが使われます。

DSSIZE integer G
表スペースに対して PAGENUM RELATIVE が指定されている場合にのみサポートされる、範囲によるパーティション表スペースの PARTITION 節で指定された場合、PARTITION integer によって識別されるパーティションのデータ・セット・サイズを整数ギガバイト単位で指定します。 各パーティションは 1 つのデータ・セットを占有するため、データ・セット・サイズはパーティションの最大サイズでもあります。 integer G の値は、 1–1024G であればどのような値でも構いません。 デフォルト値は 4G です。

整数部は、0個以上のスペースでGと区切ることができる。

PAGENUM
範囲内パーティション表スペースの作成時に使用されるページ番号付けのタイプを示します。 PAGESET_PAGENUM サブシステム・パラメーターは、デフォルトの PAGENUM 値を指定します。 変更の開始PAGESET_PAGENUM のデフォルト値は RELATIVE です。変更の終わり ページ設定ページ番号付けフィールド(PAGESET_PAGENUM サブシステムパラメータ) を参照してください。
RELATIVE
内部ページ番号が、パーティション番号のない 4 バイト値として保持されることを示します。 ページ番号は、パーティションの開始からの相対ページです。パーティション番号はヘッダー・ページにのみ保持されます。 PAGENUM RELATIVE が指定されている場合、表スペースのデータ・セットは、拡張フォーマットおよび拡張アドレッシング機能で指定された DFSMS データ・クラスに関連付けられている必要があります。
ABSOLUTE
内部ページ番号が、パーティション番号とページ番号を含む 4 バイト値として保持されることを示します。 パーティションを表すビットとページ番号を表すビットを区別するには、シフト値が必要です。 シフト値は、LOG 2 (DSSIZE /(ページサイズ) )です。
ヒント: 最適な結果を得るには、PBRテーブルスペースには相対ページ番号付け(RPN)を使用してください。 RPNはより大きなパーティションとパーティション拡張の柔軟性を可能にします。 変更の開始PBRテーブルスペースでは絶対ページ番号付けは非推奨です。変更の終わり
DSSIZE integer G
表スペース内のパーティションのデータ・セット・サイズを整数ギガバイト単位で指定します。 各パーティションは 1 つのデータ・セットを占有するため、データ・セット・サイズはパーティションの最大サイズでもあります。

DSSIZEがPAGENUM RELATIVEでパーティション・バイ・レンジ・テーブルスペースのテーブルスペースレベルで指定される場合、1~1024 Gの範囲の任意の整数値を指定でき、既定値は4 Gです。

整数部は、0個以上のスペースでGと区切ることができる。

絶対ページ番号付けを使用する場合、DSSIZE 値は 1~256 G の範囲の 2 のべき乗整数(1、2、4、8、16、32、64、128、または 256)でなければならず、デフォルト値は NUMPARTS 値とバッファプールページサイズに依存します。詳細は以下の表を参照してください。

整数部は、0個以上のスペースでGと区切ることができる。

表 3. 絶対ページ番号付けを使用する範囲によるパーティション表スペースの DSSIZE のデフォルト
ページ・サイズ NUMPARTS 値 DSSIZE のデフォルト値
任意 1-16 4 G
任意 17-32 2 G
任意 33歳から64歳 1 G
任意 65-254 4 G
4K 255-4096 4 G
8K 255-4096 8 G
16K 255-4096 16 G
32K 255-4096 32 G

DSSIZE 値は、使用できるパーティションの数に影響します。 詳細は、「パーティションの最大数とテーブルスペースのサイズ 」を参照してください。

4 G より大きい DSSIZE 値の場合、表スペースのデータ・セットは、拡張フォーマットおよび拡張アドレッシング機能で指定された DFSMS データ・クラスに関連付けられている必要があります。

SEGSIZE 整数
表スペースの各セグメントのサイズをページ単位で指定します。 整数値 は4の倍数で、4~64の範囲でなければなりません。

SEGSIZE を指定しない場合、デフォルトの SEGSIZE 値は DPSEGSZ サブシステム・パラメーターによって制御されます。 SEGSIZE 32 は、DPSEGSZ 値が 0 の場合に使用されます。 それ以外の場合、SEGSIZE 値は DPSEGSZ 値です。

ただし、DPSEGSZ 値は、作業ファイル・データベースに作成された表スペースには影響せず、SEGSIZE 16 が使用されます。

CCSID 符号化方式
表スペース内の表のコード化スキームを指定します。

CCSID を使用できるのに CCSID を指定しない場合、デフォルトは、データベース DSNDB04 の 表スペースを除いて、表スペースが常駐するデータベースのコード化スキームです。DSNDB04 の表スペースの場合、デフォルトはインストール・パネル DSNTIPF の DEF ENCODING SCHEME フィールドの値になります。

ASCII
データが ASCII CCSID を使用してエンコードされることを指定します。 表スペースが常駐するデータベースが既に ASCII として定義されている場合、 そのデータベースと関連する ASCII CCSID が使用されます。 それ以外の場合には、 サーバーのデフォルト ASCII CCSID が使用されます。
EBCDIC
データが EBCDIC CCSID を使用してエンコードされることを指定します。 表スペースが常駐するデータベースが既に EBCDIC として定義されている場合は、そのデータベースに関連付けられている EBCDIC CCSID が使用されます。 それ以外の場合は、サーバーのデフォルト EBCDIC CCSID が使用されます。

表スペース内の EBCDIC 表には、Unicode 列を含めることができます。

ユニコード
サーバーの Unicode CCSID を使用して、データをエンコードすることを指定します。

通常は、それぞれのコード化スキームに必要な CCSID はただ 1 つです。 混合データ、グラフィック・データ、または Unicode データを使用する場合は、追加の CCSID が必要です。

表スペースが作業ファイル・データベースにある場合を除いて、表スペース内に保管されたすべてのデータは、 同じコード化スキームを使用しなければなりません。

CLOSE
開いているデータセットの数が上限に達した場合に、データセットを閉じる優先順位を指定します。
はい
このテーブル・スペースのデータ・セットは、CLOSE NO データ・セットの前にクローズする資格がある。 CLOSE YESがデフォルト値。
いいえ
このテーブル・スペースのデータ・セットは、すべてのCLOSE YESデータ・セットがクローズされた後にクローズされます。

Db2 ワークファイル・データベースのテーブル・スペースでは、常にCLOSE NOの動作が使用されます。

COMPRESS
データ圧縮が表スペースの行に適用されるか、表スペースのパーティションに適用されるかを指定します。
パーティション化表スペースの場合、パーティションの COMPRESS 属性は、CREATE ステートメントに適用される以下の条件の最初のものから決定されます。
  • そのパーティションの PARTITION 節の COMPRESS 節に指定された値
  • どの PARTITION 文節にも含まれていない COMPRESS 文節に指定された値
  • それ以外の場合は、COMPRESS NO がパーティションのデフォルトです。

データ圧縮の詳細については、「データの圧縮」 を参照してください。

はい
テーブルスペースまたはパーティションでデータ圧縮が使用されることを指定します。 行は、表スペースまたはパーティション内の表に対して LOAD または REORG ユーティリティーが実行されるまで、あるいは挿入操作の実行中に行データの合計サイズが圧縮データしきい値に達するまで圧縮されません。

圧縮アルゴリズムのキーワードが指定されていない場合は、デフォルトの圧縮アルゴリズムが使用されます。 データ圧縮アルゴリズムは、TS_COMPRESSION_TYPE サブシステム・パラメーターによって決定されます。

圧縮アルゴリズムのキーワードが指定されている場合。
  • この表スペース内の LOB 列に対して暗黙的に作成される LOB 表スペースは、COMPRESS YES が圧縮アルゴリズムなしで指定されているかのように定義されます。 LOB圧縮は、 zEDC 利用可能な場合はハードウェアによって管理されます。
  • この表スペース内の XML 列に対して暗黙的に作成される XML 表スペースは、圧縮属性を継承します。
FIXEDLENGTH
固定長データ圧縮アルゴリズムを指定した。
HUFFMAN
ハフマンデータ圧縮アルゴリズムを指定します。 ハフマン圧縮を有効にするための要件については、 「ハフマン圧縮を使用したデータの圧縮」を参照してください。
いいえ
表スペースまたはパーティションでデータ圧縮を行わないように指定します。 挿入された行は圧縮されません。
DEFINE
表スペースの基礎となるデータ・セットが物理的に割り振られる時期を指定します。
はい
データ・セットは、表スペースの作成時 (CREATE TABLESPACE ステートメントの実行時) に、 作成されます。 YES がデフォルトです。
いいえ
データ・セットは、データが表スペースに挿入されるまで作成されません。 NOは、 Db2 管理データセットのみに適用されます(USING STOGROUPが指定されています)。 ユーザーによって管理されるデータ・セット (USING VCAT が指定されている) の場合、 DEFINE NO は無視されます。 Db2 カタログ・テーブルSYSTABLEPARTのSPACE列を使用して、データセットの状態(未定義または割り当て済み)を記録します。

データを操作する目的で、 Db2 以外のツールを使用する場合は、NOを定義しないことをお勧めします。例えば、データをロードする場合などです。 Db2 が想定していないデータセットが存在する可能性があるためです。 Db2 がこの矛盾した状態に遭遇すると、アプリケーションにエラーが返されます。

DEFINE NO を指定して作成された表スペースでは、ポイント・イン・タイム・リカバリーは、データ・セットが存在し、リカバリーのコピーが存在するようになるまでは動作しません。

free-block
表スペースのロードまたは再編成時にフリー・スペースを残す方法を指定します。
FREEPAGE 整数
表スペースまたはパーティションがロードまたは再編成される場合に、 フリー・スペースのページをどのような頻度で残しておくのかを指定します。 0~255 の範囲の整数を指定する必要があります。 0 を指定した場合には、フリー・スペースとして残されるページはありません。 0 以外の値を指定すると、n ページごとにフリー・ページが 1 ページ残されます。n は指定した integer 値です。 残りのページ数はセグメントサイズより少ない必要があります。 指定した整数がセグメントサイズ未満でない場合、nはセグメントサイズより1つ小さい値となります。

デフォルトは FREEPAGE 0 です。フリー・ページは残されません。

詳しくは、以下を参照してください。

PCTFREE smallint
表がロードまたは再編成される場合に、各ページに 残しておくフリー・スペースの割合 (パーセント) を指定します。 smallint は 0~99 の範囲です。 各ページの最初のレコードは、無条件にロードされます。 2 件目以降のレコードがロードされる場合には、少なくとも smallint % のフリー・スペースが各ページに残されます。

デフォルトは PCTFREE 5 で、各ページのスペースの 5% がフリー・スペースとして予約されます。

FOR UPDATE smallint
後続の UPDATE 操作で使用するために各ページにフリー・スペースとして予約するスペースの割合を指定します。 smallint 値は -1 から 99 の範囲の整数です。 FOR UPDATE -1 の場合、最初にフリー・スペースの 5% が予約され、特定のリアルタイム統計値に基づいて、フリー・スペースの量が自動的に計算されるように指定されます。 各ページの最初のレコードは、常に無条件でロードされます。

更新操作では、使用可能であれば、PCTFREE オプションまたは PCTFREE FOR UPDATE オプションで指定されたよりも多くのスペースが使用される可能性があります。

FOR UPDATE のデフォルト値は、PCTFREE_UPD サブシステム・パラメータによって制御されます。

値は、SYSIBM.SYSTABLEPART カタログ表の PCTFREE_UPD 列に記録されます。

PCTFREE smallint と FOR UPDATEsmallint の値の合計は 99 以下でなければなりません。

特定のパーティションの FREEPAGE および PCTFREE の値は、以下のいずれかに該当する最初の選択項目によって指定されます。

  • そのパーティションに対する PARTITION 文節で与えられた FREEPAGE と PCTFREE の値。
  • どの PARTITION 文節にも含まれていない free-block で与えられた値。
  • デフォルト値である FREEPAGE 0 および PCTFREE 5。

詳しくは、以下を参照してください。

gbpcache-block

データ共用環境では、表スペースまたはパーティションのどのページをグループ・バッファー・プールに書き込むかを指定します。 非データ共用環境では、表スペースに GBPCACHE を指定できますが、これは無視されます。 ただし、どちらの環境 (データ共用または非データ共用) の作業ファイル・データベースの表スペースにも GBPCACHE を指定しないでください。

GBPCACHE
表スペースまたはパーティションのページがグループ・バッファー・プールに書き込まれることを指定します。
変更済み
テーブルスペースまたはパーティションにDb2 R/Wの利害関係がある場合、更新されたページはグループバッファプールに書き込まれます。 Db2 R/W 間の利害関係がない場合、グループバッファプールは使用されません。 データ共有グループ内の複数のメンバーがテーブルスペースまたはパーティションを開いている場合、Db2 R/W 権限が存在し、少なくとも1人のメンバーが更新用に開いている場合、 デフォルトは GBPCACHE CHANGED です。

相互無効化だけに使用すると定義されている (GBPCACHE NO) グループ・バッファー・プールに表スペースがある場合、 CHANGED は無視され、ページはグループ・バッファー・プールにキャッシュされません。

すべて
ページが、DASD から読み取られたとおりに、グループ・バッファー・プールにキャッシュされることを示します。

例外: 単一のDb2更新の場合、他の DB2s がページ・セットにインタレストを持たない場合、ページはグループ・バッファー・プールにキャッシュされません。

相互無効化だけに使用すると定義されている (GBPCACHE NO) グループ・バッファー・プールに表スペースがある場合、 ALL は無視され、ページはグループ・バッファー・プールにキャッシュされません。

NONE
ページがグループ・バッファー・プールにキャッシュされないことを示します。 Db2 グループバッファプールを相互無効化のみに使用します。

NONE を指定した場合は、CREATE TABLESPACE ステートメントの実行時に、 表スペースまたはパーティションがリカバリー・ペンディング状況であってはならず、停止状態でなければなりません。

特定のパーティションの GBPCACHE の値は、以下のいずれかに該当する最初の選択項目によって決定されます。

  1. パーティションの PARTITION 節に指定された GBPCACHE。 PARTITION 文節の中では 、gbpcache-block を複数回使わないでください。
  2. 表スペースの gbpcache-block に指定された値。
  3. デフォルト値は CHANGED です。
INSERT ALGORITHM レベル
この表スペースの表に行が挿入されたときに使用されるアルゴリズムを指定します。 挿入アルゴリズムレベルは、MEMBER CLUSTER が指定された場合にのみ適用されます。 デフォルト値は 0 です。
0
挿入アルゴリズム・レベルが行の挿入時に DEFAULT_INSERT_ALGORITHM サブシステム・パラメーターによって決定されることを指定します。
1
基本挿入アルゴリズムが使用されることを指定します。
2
挿入アルゴリズム 2 を使用することを指定します。
LOCKMAX
アプリケーション・プロセスが表スペースで同時に保持できるページ・ロックまたは行ロックの最大数を指定します。 プログラムがその数を超えて要求する場合、ロックはエスカレートします。 ページ・ロックまたは行ロックが解放され、表スペースの意図的ロックが S または X モードにプロモートされます。
整数
エスカレーションする前に許可されるロックの数を、0~2147483647 の範囲で指定します。

ゼロ (0) は、表または表スペースのロック数がカウントされないことを示しており、エスカレーションは発生しません。

SYSTEM
Db2 が、 SYSIBMADM.MAX_LOCKS_PER_TABLESPACE 組み込みのグローバル変数から、プログラムがテーブルスペースで同時に保持できるロックの最大数を決定することを指定します。

詳細は、 組み込みのグローバル変数MAX_LOCKS_PER_TABLESPACE を参照してください。

次の表では、LOCKMAX を省略して LOCKSIZE 値を 指定した場合の結果を要約しています。
LOCKSIZE 結果 LOCKMAX
ANY SYSTEM
TABLESPACE、PAGE、ROW 0

ロック・サイズが TABLESPACE の場合は、LOCKMAX を省略するか、そのオペランドを 0 にする必要があります。

locksize-block
表スペースに使用されるロックのサイズ、および場合によってはロック・エスカレーションのしきい値を指定します。
LOCKSIZE
表スペース内で使用するロックのサイズを指定します。また、ロック・エスカレーションが発生するしきい値を指定する場合もあります。
ANY
Db2 が任意のロックサイズを使用できることを指定します。

ほとんどの場合、Db2は LOCKSIZE PAGE LOCKMAX SYSTEM を使用します。 ただし、表スペースに対して獲得されたロックの数が、表スペースに対して許可されているロックの最大数 (SYSIBMADM.MAX_LOCKS_PER_TABLESPACE 組み込みグローバル変数の値) を超えると、ページ・ロックが解放され、パーティション・レベルのロックが使用されます。 詳細は、 組み込みのグローバル変数MAX_LOCKS_PER_TABLESPACE を参照してください。

TABLESPACE
表スペース・レベルのロックを指定します。
PAGE
ページ・レベルのロックを指定します。
ROW
行ロックを指定します。
LOGGED または NOT LOGGED
指定した表スペース内のデータに対する変更をログに記録するかどうかを指定します。 LOGGEDおよびNOT LOGGEDは、データベース DSNDB06 の表スペースには指定できません。 Db2 カタログ。 この設定は、指定された表スペースに作成される表、および表のすべての索引に適用されます。 XML 表スペースとその索引は、関連する基本表スペースからロギング属性を継承します。 補助索引は、関連する基本表スペースからロギング属性も継承します。
LOGGED
指定した表スペース内のデータに対する変更をログに記録することを指定します。

LOGGED はデフォルト値です。

NOT LOGGED
指定した表スペース内のデータに対する変更をログに記録しないことを指定します。

NOT LOGGED により、取り消し情報や再実行情報はログに記録されなくなります。ただし、指定した表スペースの制御情報は引き続きログに記録されます。

MAXROWS 整数
Db2 が各データページに配置することを検討する最大行数を指定します。 整数は1~255の範囲で指定できます。 この値は、挿入操作、LOAD、および REORG の場合に考慮されます。 LOAD および REORG の場合、PCTFREE 規格は MAXROWS の前に考慮されます。したがって、保管される行の数は MAXROWS に指定した値より少なくなる可能性があります。

MAXROWS を指定しない場合、デフォルトの行数は 255 です。

MEMBER CLUSTER
挿入操作で挿入されたデータが、暗黙的 クラスタリング索引 (最初の索引) または明示的クラスタリング索引によってクラスター化 されないことを指定します。 その代わりに、 Db2 は利用可能なスペースに基づいてテーブルスペース内のデータの配置場所を選択します。
TRACKMOD
Db2 がスペースマップページで変更されたページを追跡するかどうかを指定します。
はい
Db2 トラックは、インクリメンタル画像コピーのパフォーマンスを向上させるために、スペースマップページ内のページを変更しました。
いいえ
Db2 スペースマップページで変更されたページを追跡しない。 DB2 は、各ページの LRSN 値を使用して、ページが変更されたかどうかを判別します。

TRACKMOD 節は、パーティションごとに指定することも、表スペースに対して指定することもできます。 TRACKMOD 値がパーティションに対して指定されていない場合は、表スペースの TRACKMOD 値が使用されます。 表スペースの TRACKMOD 値が指定されていない場合は、IMPTKMOD サブシステム・パラメータで指定されたデフォルト値が使用されます。 詳細は、マクロのIMPTKMOD( DSN6SYSP )を参照してください。

using-block

Db2またはユーザーが表スペースまたはそのパーティションのデータ・セットを管理するかどうかを指定します。 USING 節は、パーティションごとに指定することも、表スペースに対して指定することもできます。 パーティションに USING 節が指定されていない場合は、表スペースに指定された USING 節が使用されます。 表スペースに USING 節が指定されていない場合は、データベースのストレージ・グループが使用され、通常のデフォルトは PRIQTY、SECQTY、および ERASE です。 テーブルスペースの USING 節が省略された場合、データベースのデフォルトのストレージグループが存在していなければなりません。

VCATカタログ名
パーティションのデータセットが、ユーザーによって 「データセットの命名規則」 に定められた命名規則に従って管理されていることを示します。 非パーティション化表スペースの場合と同様に、catalog-name がこの データ・セットのカタログを示します。また、データ・セット名の 第 1 レベル修飾子にもなります。

1つまたは複数の Db2 サブシステムが、現在のサーバーと統合カタログ機能のカタログを共有できる。 これらのサブシステムのうちの1つが、異なるデータセットに同じ名前を割り当てようとする可能性を避けるには、他の Db2 サブシステムで使用されていない値をcatalog-nameとして選択します。

増加対応パーティション表スペースに対して USING VCAT を指定してはなりません。

Db2 各パーティションに1つのデータセットのみが存在すると仮定します。

STOGROUP stogroup-name
Db2 がstogroup-nameという名前のストレージグループの支援を受けて、パーティション用のデータセットを作成することを示します。 データ・セットは、このステートメントの実行中に定義されます。 Db2 各パーティションに1つのデータセットのみが存在すると仮定します。

stogroup-name は、現行サーバーに存在するストレージ・グループ を示すものでなければなりません。また、特権セットに、SYSADM 権限、 SYSCTRL 権限、またはそのストレージ・グループに対する USE 特権が含まれていなければいけません。 ストレージ・グループに使用される統合カタログ機能カタログには、そのデータ・セットの項目が含まれていてはなりません。

あるパーティションについて USING STOGROUP を指定した場合、PRIQTY、SECQTY、ERASE のデフォルトは、どの PARTITION 文節にも含まれていない USING STOGROUP 文節で指定された値になります。 USING STOGROUP 文節を指定しないと、デフォルトは、PRIQTY、 SECQTY、ERASE のところで説明した値になります。

PRIQTY 整数

Db2 管理下のデータセットに対する最小のプライマリスペース割り当てを指定します。 integer は正の整数または -1 でなければなりません。 一般的に、正の整数値を使用して PRIQTY を指定した場合の 1 次スペース割り振りは、少なくとも n キロバイトになります。ここで、ninteger の値です。 ただし、以下の例外があります。

  • 4KB ページ・サイズの場合、integer が 0 より大きく 12 未満なら、n は 12 です。
  • 8KB ページ・サイズの場合、integer が 0 より大きく 24 未満なら、n は 24 です。
  • 16KB ページ・サイズの場合、integer が 0 より大きく 48 未満なら、n は 48 です。
  • 32KB ページ・サイズの場合、integer が 0 より大きく 96 未満なら、n は 96 です。
  • 変更の開始FL 507 ページサイズに関わらず、 整数が 1073741824より大きい場合、 nは 1073741824となる。変更の終わり

PRIQTY を指定しない場合、または PRIQTY を -1 の値で指定する場合は、 Db2 はプライマリ・スペース割り当ての既定値を使用します。 Db2 が既定値を決定する方法については、「 Db2 テーブル・スペースおよびインデックスのプライマリ・スペース割り当て」 を参照してください。

PRIQTY を指定し、値 -1 を指定しない場合、Db2は、n 以上の p KB の最小の公倍数を使用してメソッド・サービスにアクセスするための 1 次スペース割り振りを指定します。ここで、P は表スペースのページ・サイズです。 割り振られたスペースは、Db2によって要求されたスペースの量より大きくすることができます。 例えば、要求を入れられるだけの最小のトラック数となる場合も考えられます。 VSAM のスペース割り振りの制約事項に基づくストレージ・グループ内にある 特定のボリューム上で、要求されるストレージ・スペースの量を使用できなければなりません。 十分なスペースがない場合は、1 次スペース割り振りは失敗します。 実際のストレージ容量をより正確に見積もるには、 DEFINE CLUSTER コマンドを参照してください。

変更の開始FL 507 大規模なPRIQTYの場合、テーブルスペースのデータセットは、マルチボリュームデータセットで指定される DFSMS データクラスに関連付けることが推奨されます。 これにより、 Db2 は必要な場合に複数ボリュームにまたがるデータセットを作成できます。 変更の終わり

変更の開始FL 507 データクラスに対して複数のボリュームを定義するには、VOLUME COUNT または DYNAMIC VOLUME COUNT を変更して 1 より大きい値を指定する必要がある場合があります。 詳細については、 「データクラスのボリュームおよびデータセット属性の定義」 を参照してください。変更の終わり

変更の開始FL 507 さらに、スペース緩和制約も変更が必要となる場合があります。 詳細については、 「割り当て時のスペース制約を処理するための属性の指定」 を参照してください。変更の終わり

このステートメントを実行すると、データ・セットが 1 つ だけ作成されます。 しかし、データがこの 1 つのデータ・セットで収容できる量を超える場合があります。 Db2 必要に応じて、より多くのデータセットを自動的に定義します。 PRIQTYの値に関係なく、データ・セットがその最大サイズに達すると、Db2は新しいデータ・セットを作成します。 データ・セットがエクステントを使い果たすことなく最大サイズに達するためには、Db2がエクステントの 2 次スペース割り振りの値を自動的に選択できるようにすることをお勧めします。

スペースの無駄を避けるために、SECQTY を明示的に指定する場合は、次の式を 使用して、PRIQTY とそれに関連する 2 次エクステント値がデータ・セットの 最大サイズを超えないようにしてください。
PRIQTY + (number of extents * SECQTY) <= DSSIZE (implicit or explicit)
SECQTY 整数
Db2 管理のデータセットに対する最小のセカンダリ領域割り当てを指定します。 integer は、正の整数、0、または -1 でなければなりません。 SECQTYを指定しない場合、または値が -1 の SECQTY を指定する場合、Db2は数式を使用して値を決定します。 値を指定するかどうかに関わらず、2次スペース割り当てに使用される実際の値については、 Db2 テーブルスペースおよびインデックスの1次スペース割り当てを参照してください。

変更の開始FL 507 整数が 209715200 より大きい場合、 n は 209715200 となる。変更の終わり

SECQTY を指定し、値 -1 を指定しない場合、Db2は、integer 以上の p KB の最小公倍数を使用してメソッド・サービスにアクセスする 2 次スペース割り振りを指定します。ここで、p は表スペースのページ・サイズです。 割り振られたスペースは、Db2によって要求されたスペースの量より大きくすることができます。 例えば、要求を入れられるだけの最小のトラック数となる場合も考えられます。 実際のストレージ容量をより正確に見積もるには、 DEFINE CLUSTER コマンドを参照してください。

ERASE
表スペースのDb2管理データ・セットが、ユーティリティーまたは表スペースをドロップする SQL ステートメントの実行中に削除されるときに、それらのデータ・セットを消去するかどうかを示します。
いいえ
データ・セットを消去しません。 データ・セットの削除を伴う操作では、ERASE YES よりもパフォーマンスが上がります。 ただし、Db2を使用しない場合でも、データは引き続きアクセス可能です。 これはデフォルトです。
はい
データ・セットを消去します。 セキュリティー手段として、Db2は、データ・セット内のすべてのデータを削除する前にゼロで上書きします。
変更の開始仕分け用変更の終わり
変更の開始FL 508 ワークファイルデータベース内のPBGテーブルスペースに対してのみ、FOR SORT句は、宣言済みグローバル一時テーブル(DGTT)以外のプロセス(ソート、結合、作成済みグローバル一時テーブル、クエリ並列処理、トリガー遷移テーブルなど)に当該テーブルスペースを使用することを指定します この句は、IN データベース名句で指定されたデータベースが作業ファイルデータベースである場合にのみ受け入れられます。変更の終わり
変更の開始DGTT宛変更の終わり
変更の開始FL 508 作業ファイルデータベース内のPBGテーブルスペースに対してのみ、FOR DGTT句は、その テーブルスペースがスクロール可能カーソルや代わりにトリガーなどの内部一時テーブルを使用するDGTTおよびプロセスに使用されることを指定します。 この句は、IN データベース名句で指定されたデータベースが作業ファイルデータベースである場合にのみ受け入れられます。変更の終わり

注釈 CREATE TABLESPACE

表スペース・タイプ
アプリケーション互換性レベル V12R1M504、CREATE TABLESPACE文でMAXPARTITIONS節とNUMPARTIONS節が指定されているかどうかによって、結果のテーブルスペースの分割方法が異なります。次の表に示されているように、 CREATE TABLESPACE文でNUMPARTS節を指定し、MAXPARTITIONS節を指定しない場合、パーティション・バイ・レンジ(PBR UTS)テーブルスペースが作成されます。 そうでない場合は、パーティショニング・バイ・グロース(PBG UTS)テーブルスペースが作成されます。

ただし、アプリケーション互換レベル以下では、 V12R1M504 非推奨のテーブルスペースの種類(分割(UTS以外)およびパーティショニング(UTS以外)テーブルスペースを含む)を作成することができます。 このような場合、作成される表スペースのタイプは、CREATE TABLESPACE ステートメントが指定する SEGSIZE、MAXPARTITIONS、および NUMPARTS 節によって異なります。

表 4. 表スペース・タイプを指定するための CREATE TABLESPACE 文節。アプリケーションの互換性レベルによって行います。
表スペース・タイプ APPLCOMPAT( V12R1M504 )以降 APPLCOMPAT( V12R1M503 )およびそれ以下
増加対応パーティション 以下のいずれかの組み合わせです。
  • MAXPARTITIONS および NUMPARTS
  • MAXPARTITIONS
  • 両方の省略
以下のいずれかの組み合わせです。
  • MAXPARTITIONS および NUMPARTS
  • MAXPARTITIONS と SEGSIZE n 1
  • MAXPARTITIONS
範囲パーティション NUMPARTS のみ NUMPARTS と SEGSIZE n 1
セグメント化 (非 UTS) サポート対象外2 以下の組み合わせのいずれかになります。
  • セグメントサイズ n 1
  • MAXPARTITIONS、NUMPARTS、および SEGSIZE を省略します
パーティション化 (非 UTS) サポート対象外2 NUMPARTS および SEGSIZE 0
注:
  1. ここで、n はゼロ以外の値です。 DPSEGSZ サブシステム・パラメーターは、デフォルト値を決定します。 詳細は、 DEFAULT PARTITION SEGSIZE フィールド(DPSEGSZ サブシステムパラメータ )を参照してください。
  2. ベーステーブル用の非UTSテーブルスペースは非推奨です。 アプリケーション互換性レベルで実行されるCREATE TABLESPACE文は、 V12R1M504、常にパーティショニング・バイ・グロースまたはパーティショニング・バイ・レンジのテーブルスペースを作成します。また、非UTSテーブルスペース(既存のマルチテーブル・セグメント化テーブルスペースを含む)を指定したCREATE TABLE文はエラーを返します。 ただし、必要であれば、復旧状況など、非推奨のタイプのテーブルスペースを作成するために、より低いアプリケーション互換性レベルを使用することができます。 手順については、「非UTSテーブル空間の作成(非推奨 )」を参照してください。

詳細は、 Db2 for z/OS の「テーブルスペースの種類と特性 」を参照してください。

4 G より大きい DSSIZE 値
4 G より大きい DSSIZE 値の場合、表スペースのデータ・セットは、拡張フォーマットおよび拡張アドレッシング機能で指定された DFSMS データ・クラスに関連付けられている必要があります。
XML 表スペース
増加対応パーティション表スペースに XML 列が含まれている場合、対応する XML 表スペースは、基本表スペースとは独立して増加する増加対応パーティション表スペースです。 範囲によるパーティション化表スペースに XML 列が含まれている場合、対応する XML 表スペースは、データ・パーティション化された範囲によるパーティション化表スペースです。 つまり、基本表データのパーティション・スキームに従ってパーティション化されます。
LOCKSIZE PAGE を指定する表スペースで現在コミットされているアクセスを使用するアプリケーション
LOCKSIZE PAGE で定義されている表スペース内のデータのリーダーが常に現在コミット済みデータにアクセスできるようにするには、MAXROWS を 8 以下に設定します。 MAXROWS が 8 より大きい場合、リーダーが表の行にアクセスするには、その前に表スペースの表に対する挿入操作または削除操作がコミットされるのをリーダーが待機しなければならない場合があります。

詳細は、「ロック競合を回避するための現在コミットされているデータへのアクセス 」を参照してください。

作業ファイル・データベース内の表スペース
ワークファイルデータベース内のテーブルスペースは、常に成長によるパーティショニングのテーブルスペースです。

作業ファイル・データベースに作成される表スペースには、以下の制約事項が適用されます。

  • 実行中の Db2 サブシステムと他のメンバーの両方がワークファイルデータセットにアクセスできる場合のみ、他のメンバー用に作成することができます。 これは、データセットがユーザー管理されているか、 Db2 ストレージグループにあるかに関わらず必要です。
  • 8 KB または 16 KB ページ・サイズは使用できない。 (ページ・サイズは、その表スペースを定義してあるバッファー・プールに よって決まります。 例えば、4 KB バッファー・プール内に定義されている表スペースは 4 KB ページ・サイズになります。)
  • 作業ファイル・データベースに表スペースを作成する場合、次の文節は使用できません。
    • CCSID
    • COMPRESS
    • DEFINE NO
    • FREEPAGE
    • GBPCACHE
    • LARGE
    • LOCKPART
    • LOCKSIZE
    • LOGGED
    • MAXROWS
    • MEMBER CLUSTER
    • NOT LOGGED
    • PAGENUM
    • PCTFREE
    • SEGSIZE (SEGSIZE 16 は常に使用されます)
    • TRACKMOD

Db2 ワークファイル・データベースのテーブル・スペースでは、常にCLOSE NOの動作が使用されます。

宣言済み一時表の表スペース
変更の開始宣言された一時テーブルおよびセンシティブな静的スクロール可能カーソルは、作業ファイルデータベース内のテーブルスペースに存在しなければならない。 宣言された一時テーブルを定義して使用する前、または機密性の高い静的スクロールカーソルを開く前に、ワークファイルデータベースに少なくとも1つの32KBのページサイズを持つテーブルスペースが存在していなければなりません。

作業ファイル・データベース内の表スペースは、作業ファイル、作成済みグローバル一時表と宣言済みグローバル一時表、およびセンシティブ静的両方向スクロール・カーソル結果表によって共用されます。 どの特定のオブジェクトに対しても、どの表スペースを使用 するかを指定するできません。

変更の終わり
表スペースの行フォーマット
新しく作成されたすべての表スペースは、再配列された行フォーマットを使用します。
1 次および 2 次スペース割り振りの規則
1 次および 2 次スペース割り振りを指定することも、 Db2 にそれらを選択させることもできます。 Db2 が値 (特に 2 次スペース量) を選択すると、エクステントが不足する前に最大データ・セット・サイズに到達する可能性が高くなります。 詳細は、 Db2 のスペース割り当てをご覧ください。
パーティションの最大数と表スペース・サイズ
相対ページ番号付けを使用して作成された範囲によるパーティション表スペースの場合、パーティションの最大数は 4096 です。絶対ページ番号を持つ範囲別パーティション表スペースまたは増加によるパーティション表スペースの場合、次の表は、5 バイトの拡張アドレス可能度 (EA) ストレージを使用して、パーティションの最大数と表スペースの合計サイズがバッファー プールのページ サイズと DSSIZE 値によってどのように変化するかを示しています。1
4 KB ページ・サイズ
表 5. DSSIZE によるパーティションの最大数と表スペースのサイズ、4 KB のページ・サイズ
DSSIZE パーティションの最大数 合計表スペース・サイズ
1G 4096 4TB
2G 4096 8TB
4G 4096 16 TB
8G 2048 16 TB
16G 1024 16 TB
32G 512 16 TB
64G 256 16 TB
128G 128 16 TB
256G 64 16 TB
8 KB ページ・サイズ
表 6. DSSIZE によるパーティションの最大数と表スペースのサイズ、8 KB のページ・サイズ
DSSIZE パーティションの最大数 合計表スペース・サイズ
1G 4096 4TB
2G 4096 8TB
4G 4096 16TB
8G 4096 32TB
16G 2048 32TB
32G 1024 32TB
64G 512 32TB
128G 256 32TB
256G 128 32TB
16 KB ページ・サイズ
表 7. DSSIZE によるパーティションの最大数と表スペースのサイズ、16 KB のページ・サイズ
DSSIZE パーティションの最大数 合計表スペース・サイズ
1G 4096 4TB
2G 4096 8TB
4G 4096 16 TB
8G 4096 32 TB
16G 4096 64 TB
32G 2048 64 TB
64G 1024 64 TB
128G 512 64 TB
256G 256 64 TB
32 KB ページ・サイズ
表 8. DSSIZE によるパーティションの最大数と表スペースのサイズ、32 KB のページ・サイズ
DSSIZE パーティションの最大数 合計表スペース・サイズ
1G 4096 4TB
2G 4096 8TB
4G 4096 16 TB
8G 4096 32 TB
16G 4096 64 TB
32G 4096 128 TB
64G 2048 128 TB
128G 1024 128 TB
256G 512 128 TB
注:
  1. 5 バイトの非 EA ストレージの場合、4 KB ページ・サイズの最大値は、DSSIZE 4 G、4096 パーティション、および合計表スペースの 16 TB です。
CREATE TABLESPACEの代替構文および同義語
以前の Db2 リリースまたは機能レベルとの互換性を保つため、以下のキーワードがサポートされています。
  • LOCKPART 文節を指定できますが、効果はありません。 Db2 すべてのテーブルスペースを、LOCKPART YESとして定義されているかのように扱います。 LOCKPART YES は、選択パーティション・ロッキングの使用を指定します。 選択的パーティションロックの条件がすべて満たされた場合、 Db2 はアクセスされるパーティションのみをロックします。 選択的パーティションロックの条件が満たされない場合、 Db2 はテーブルスペースのすべてのパーティションをロックします。

    LOCKSIZE TABLESPACE と LOCKPART YES は相互に排他的です。

  • パーティション化表スペースを作成する際に、PARTITION のシノニムとして PART を指定できます。
  • 表スペースに対してロギング属性を指定する際に、LOGGED のシノニムとして LOG YES を指定できます。また、NOT LOGGED のシノニムとして LOG NO を指定できます。
  • MAXPARTITIONSもNUMPARTSも指定されていない場合、LOCKSIZE TABLEをLOCKSIZE TABLESPACEの同義語として指定することができます。
  • DSSIZEはパーティションサイズを指定する際に推奨される句ですが、パーティショニングされたテーブルスペースを作成する際に CREATE LARGE TABLESPACE を指定することもできます。 DB2® version 5 との互換性を保つため、LARGEキーワードは許容されますが、DSSIZE句が指定されていない場合に限ります。 4GB以上の最大パーティションサイズを指定するには、DSSIZE句の使用が推奨されます。 詳細は、「非大規模テーブルスペース(非推奨 )」を参照してください

これらのキーワードは代替としてサポートされていますが、推奨される構文ではありません。

変更の開始非大規模テーブルスペース(非推奨)変更の終わり
変更の開始

非大規模テーブルスペースでは、4バイトの行識別子(RID)が使用され、最大サイズは64GBに制限されています。 次の種類のテーブルスペースは、非大規模テーブルスペースとすることができます

  • パーティショニングされた(UTSではない)テーブルスペースで、作成時に DSSIZE もLARGE も指定されていない場合
  • すべてのセグメント化された(非UTS)テーブルスペース
  • すべての単純なテーブルスペース

PBGおよびPBR UTS、および DSSIZE またはLARGE を指定して作成された非UTSテーブルスペースは、5バイトまたは7バイトのRIDを使用し、64GBを超えるデータを格納できるため、すべて大規模テーブルスペースと見なされます。

Db2 の製品ドキュメントでは、大きなテーブルスペース属性についてほとんど言及されていません。これは、常に非推奨ではないすべてのテーブルスペースタイプに適用されるためです。 これは当初 DB2 version 5 で導入されたが、すぐにDSSIZE句に置き換えられた。 CREATE LARGE TABLESPACEを指定することで、もともと大きなテーブルスペースが作成されました。 DB2 version 5 との互換性を保つため、LARGEキーワードは許容されますが、DSSIZE句が指定されていない場合に限ります。 4GB以上の最大パーティションサイズを指定するには、DSSIZE句の使用が推奨されます。

変更の終わり

CREATE TABLESPACE

例1: ストレージグループを使用した成長型パーティショニングテーブルスペース
データベースにテーブルスペースを作成する DSN8S13D データベース内に DSN8D13ADb2 にデータセットを定義させ、ストレージグループを使用する DSN8G130。 1 次スペース割り振りは 52 キロバイトです。2 次スペース割り振りは 20 キロバイトです。 データ・セットを削除する前に、消去する必要はありません。
スペース内の表のロッキングは、ページ・レベルで行います。 表スペースをバッファー・プール BP1 に関連付けます。 誰も表スペースを使っていなければ、データ・セットをクローズすることができます。
   CREATE TABLESPACE DSN8S13D
     IN DSN8D13A
     USING STOGROUP DSN8G130
       PRIQTY 52
       SECQTY 20
       ERASE NO
     LOCKSIZE PAGE
     BUFFERPOOL BP1
     CLOSE YES;

上記の例では、表スペースの基礎データ・セットは即時に作成されます。これはデフォルト (DEFINE YES) です。 データが最初に表スペースに挿入されるまでデータ・セットの作成を遅らせたい場合には、 デフォルト時の動作を受け入れずに DEFINE NO を指定します。

CREATE TABLESPACE文ではNUMPARTS節とMAXPARTITIONS節が省略されているため、作成されるテーブルスペースは、成長によるパーティショニングのテーブルスペースとなります。

例2: 範囲によるパーティショニングのテーブルスペースのパーティショニングオプション
大規模な照会データベース・アプリケーションが、マーケティング統計の履歴販売データを記録するために表スペースを使用するとします。 アプリケーション用のデータベースに大きなテーブルスペースSALESHXを作成 DSN8D13A アプリケーション用にデータベースに 82のパーティションを作成し、パーティション80~82のデータは圧縮するよう指定します。

Db2 に、ストレージグループを使用して、テーブルスペース内のすべてのパーティションのデータセットを定義させます。 DSN8G130。 データ・セットごとの 1 次スペース割り振り は 4000 キロバイト、2 次スペース割り振りは 130 キロバイトです。 パーティション 82 についてのデータ・セット以外は、 削除する前にデータ・セットを消去する必要はありません。

表のロッキングは、ページ・レベルで行います。 パーティション表スペース内には、1 つの表のみが存在できます。 表スペースをバッファー・プール BP1 に関連付けます。 誰も表スペースを使っていなければ、データ・セットをクローズすることができません。 閉じるべきCLOSE YESデータセットが存在しない場合、DSMAXに達した際にCLOSE NO Db2 データセットを閉じる可能性がある。 変更の開始
   CREATE TABLESPACE SALESHX
     IN DSN8D13A
     USING STOGROUP DSN8G130
       PRIQTY 4000
       SECQTY 130
       ERASE NO
     NUMPARTS 82
     (PARTITION 80
       COMPRESS YES,
      PARTITION 81
       COMPRESS YES,
      PARTITION 82
       COMPRESS YES
       USING STOGROUP DSN8G120
       ERASE YES)
     LOCKSIZE PAGE
     BUFFERPOOL BP1
     CLOSE NO;
変更の終わり

CREATE TABLESPACE文にはNUMPARTS節が指定され、MAXPARTITIONS節が指定されていないため、範囲によるパーティショニングのテーブル空間が作成されます。

例 3: 範囲によるパーティション表スペース
次の例では、データベース内に、 TS1 というパーティション分割された範囲テーブルスペースを作成します。 DSN8D13A ストレージグループを使用して DSN8G130。 この表スペースには、セグメントあたり 16 個のページがあり、また 55 のパーティションがあります。 LOCKSIZE ANY を指定しています。
   CREATE TABLESPACE TS1
     IN DSN8D13A
     USING STOGROUP DSN8G130
     NUMPARTS 55
     SEGSIZE 16
     LOCKSIZE ANY;   
例 4: 範囲によるパーティション表スペース
次の例では、データベース内に TS2 というパーティション分割された範囲テーブルスペースを作成し、 DSN8D13A ストレージグループを使用して DSN8G130。 この表スペースには、セグメントあたり 64 個のページがあり、7 つの定義保留パーティションがあります。ここでは、それ以外の各パーティションは圧縮されます。
   CREATE TABLESPACE TS2
     IN DSN8D13A
     USING STOGROUP DSN8G130
     NUMPARTS 7
     (
      PARTITION 1 COMPRESS YES,
      PARTITION 3 COMPRESS YES,
      PARTITION 5 COMPRESS YES,
      PARTITION 7 COMPRESS YES
     )
     SEGSIZE 64
     DEFINE NO;   
例 5: 増加対応パーティション表スペース
以下の例では、増加対応パーティション表スペースを作成します。この表スペースの各パーティションの最大サイズは 2 GB、セグメントごとに 4 ページ、表スペースの最大パーティション数は 24 です。
CREATE TABLESPACE TS01TS IN TS01DB USING STOGROUP SG1
  DSSIZE 2G
  MAXPARTITIONS 24
  LOCKSIZE ANY
  SEGSIZE 4;
例6:パーティション・バイ・レンジ・テーブルスペースの大きなPRIQTYオプション

次の例では、プライマリ量として8,000,000 KBを使用して、5分割のパーティション・バイ・レンジ・テーブル空間を作成しています。

STGROUP定義時にVOLUMES句を指定しないこと。 代わりに、DATACLASを使用して、マルチボリュームが有効になっているSMSデータ・クラスを指定する。

データベース DBPBR1 にテーブルスペース TSPBR1 を作成する。 Db2 ストレージグループ PBRSG1 を使ってデータセットを定義する。 プライマリースペースの割り当てが8,000,000 KBと指定されているため、ストレージグループ PBRSG1 を作成する際に、DATACLASを使用して、マルチボリュームが有効なSMSデータクラスを指定する。

CREATE TABLESPACE TSPBR1
  IN DBPBR1
  NUMPARTS 5 (
  (
   PART 1
     USING STOGROUP PBRSG1 PRIQTY 8000000 SECQTY -1
     ERASE NO
     DSSIZE 16G
     FREEPAGE 0 PCTFREE 0
     TRACKMOD NO
     COMPRESS YES GBPCACHE CHANGED,
   PART 2
     USING STOGROUP PBRSG1 PRIQTY 8000000 SECQTY -1
     ERASE NO
     DSSISE 16G
     FREEPAGE 0 PCTFREE 0
     TRACKMOD NO
     COMPRESS YES GBPCACHE CHANGED,
   PART 3
     USING STOGROUP PBRSG1 PRIQTY 8000000 SECQTY -1
     ERASE NO
     DSSIZE 16G
     FREEPAGE 0 PCTFREE 0
     TRACKMOD NO
     COMPRESS YES GBPCACHE CHANGED,
   PART 4
     USING STOGROUP PBRSG1 PRIQTY 8000000 SECQTY -1
     ERASE NO
     DSSIZE 16G
     FREEPAGE 0 PCTFREE 0
     TRACKMOD NO
     COMPRESS YES GBPCACHE CHANGED,
   PART 5
     USING STOGROUP PBRSG1 PRIQTY 8000000 SECQTY -1
     ERASE NO
     DSSIZE 16G
     FREEPAGE 0 PCTFREE 0
     TRACKMOD NO
     COMPRESS YES GBPCACHE CHANGED
  );