Db2 10.5 for Linux, UNIX, and Windows

CREATE TABLESPACE ステートメント

CREATE TABLESPACE ステートメントは、データベースに新しい表スペースを定義し、 その表スペースにコンテナーを割り当て、その表スペース定義と属性をカタログに記録します。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むか、あるいは対話式に発行することができます。 これは、DYNAMICRULES の実行動作がパッケージに効力を持つ場合にのみ、動的に準備できる実行可能ステートメントです (SQLSTATE 42509)。

許可

このステートメントの許可 ID が持つ特権には、SYSCTRL または SYSADM 権限が含まれている必要があります。

構文

構文図を読む構文図をスキップする
>>-CREATE--+-----------------------+---------------------------->
           +-LARGE-----------------+   
           +-REGULAR---------------+   
           | .-SYSTEM-.            |   
           '-+--------+--TEMPORARY-'   
             '-USER---'                

>--TABLESPACE--tablespace-name---------------------------------->

>--+-----------------------------------------------------------+-->
   |     .-DATABASE PARTITION GROUP-.                          |   
   '-IN--+--------------------------+--db-partition-group-name-'   

>--+--------------------------+--------------------------------->
   '-PAGESIZE--integer--+---+-'   
                        '-K-'     

   .-MANAGED BY--AUTOMATIC STORAGE--| storage-group |--| size-attributes |--.   
>--+------------------------------------------------------------------------+-->
   '-MANAGED BY--+-SYSTEM--| system-containers |--------------------------+-'   
                 '-DATABASE--| database-containers |--| size-attributes |-'     

>--+---------------------------------+-------------------------->
   '-EXTENTSIZE--+-number-of-pages-+-'   
                 '-integer--+-K-+--'     
                            '-M-'        

>--+-----------------------------------+------------------------>
   '-PREFETCHSIZE--+-AUTOMATIC-------+-'   
                   +-number-of-pages-+     
                   '-integer--+-K-+--'     
                              '-M-'        

>--+-----------------------------+------------------------------>
   '-BUFFERPOOL--bufferpool-name-'   

>--+--------------------------------------+--------------------->
   '-OVERHEAD--+-number-of-milliseconds-+-'   
               '-INHERIT----------------'     

>--+------------------------+----------------------------------->
   +-NO FILE SYSTEM CACHING-+   
   '-FILE SYSTEM CACHING----'   

>--+------------------------------------------+----------------->
   '-TRANSFERRATE--+-number-of-milliseconds-+-'   
                   '-INHERIT----------------'     

>--+--------------------------------+--------------------------->
   '-DATA TAG--+-integer-constant-+-'   
               +-INHERIT----------+     
               '-NONE-------------'     

>--+---------------------------------+-------------------------><
   '-DROPPED TABLE RECOVERY--+-ON--+-'   
                             '-OFF-'     

storage-group

|--+-----------------------------------+------------------------|
   '-USING STOGROUP--storagegroup-name-'   

size-attributes

|--+---------------------+--+-----------------------------+----->
   '-AUTORESIZE--+-NO--+-'  '-INITIALSIZE--integer--+-K-+-'   
                 '-YES-'                            +-M-+     
                                                    '-G-'     

>--+------------------------------------+----------------------->
   '-INCREASESIZE--integer--+-PERCENT-+-'   
                            '-+-K-+---'     
                              +-M-+         
                              '-G-'         

>--+-----------------------------+------------------------------|
   '-MAXSIZE--+-integer--+-K-+-+-'   
              |          +-M-+ |     
              |          '-G-' |     
              '-NONE-----------'     

system-containers

   .----------------------------------------------------------------------.   
   |           .-,------------------.                                     |   
   V           V                    |                                     |   
|----USING--(----'container-string'-+--)--+-----------------------------+-+--|
                                          '-| on-db-partitions-clause |-'     

database-containers

   .--------------------------------------------------------------.   
   V                                                              |   
|----USING--| container-clause |--+-----------------------------+-+--|
                                  '-| on-db-partitions-clause |-'     

container-clause

      .-,---------------------------------------------------.      
      V                                                     |      
|--(----+-FILE---+--'container-string'--+-number-of-pages-+-+--)--|
        '-DEVICE-'                      '-integer--+-K-+--'        
                                                   +-M-+           
                                                   '-G-'           

on-db-partitions-clause

|--ON--+-DBPARTITIONNUM--+-------------------------------------->
       '-DBPARTITIONNUMS-'   

      .-,--------------------------------------------------.      
      V                                                    |      
>--(----db-partition-number1--+--------------------------+-+--)--|
                              '-TO--db-partition-number2-'        

説明

LARGE、REGULAR、SYSTEM TEMPORARY、USER TEMPORARY
作成する表スペースのタイプを指定します。タイプを指定しない場合は、MANAGED BY 節によってデフォルトが決定されます。
LARGE
すべての永続データを保管します。 このタイプは、データベース管理スペース (DMS) 表スペースでのみ使用できます。 また、タイプを指定しない場合の、DMS 表スペースのデフォルト・タイプでもあります。 LARGE 表スペースに表を配置すると、以下のようになります。
  • REGULAR 表スペースに配置する表よりもサイズを大きくできます。 表と表スペースの制限値の詳細については、『SQL と XML の制限』を参照してください。
  • 表のデータ・ページ当たり、255 を超える行数をサポートできるので、データ・ページのスペース使用効率が向上します。
  • REGULAR 表スペースに配置した表に索引を定義する場合に比べ、索引の 1 つの行項目当たり 2 バイトが追加で必要になります。
REGULAR
すべての永続データを保管します。 このタイプは、DMS 表スペースと SMS 表スペースの両方に該当します。 SMS 表スペースでは、これが唯一認められているタイプであり、タイプを指定しない場合の、SMS 表スペースのデフォルト・タイプでもあります。
SYSTEM TEMPORARY
一時表 (データベース・マネージャーがソートや結合などの操作を実行するのに使用する作業域) を保管します。 データベースには、常に少なくとも 1 つの SYSTEM TEMPORARY 表スペースが必要です。一時表はこの種の表スペースにのみ保管することができるからです。 TEMPORARY 表スペースはデータベースの作成時に自動的に作成されます。
USER TEMPORARY
作成済み一時表および宣言済み一時表を保管します。 データベースの作成時に USER TEMPORARY 表スペースは存在しません。 作成済み一時表または宣言済み一時表を定義できるようにするには、適切な USE 特権を設定した USER TEMPORARY 表スペースを少なくとも 1 つ作成する必要があります。
tablespace-name
表スペースの名前を指定します。 これは、1 部構成の名前です。 これは、SQL ID です (通常 ID または区切り ID)。 tablespace-name (表スペース名) は、 既にカタログに存在している表スペースを指定するものであってはなりません (SQLSTATE 42710)。 tablespace-name を文字 SYS で始めることはできません (SQLSTATE 42939)。
IN DATABASE PARTITION GROUP db-partition-group-name
表スペースのデータベース・パーティション・グループを指定します。 該当のデータベース・パーティション・グループは存在していなければなりません。 SYSTEM TEMPORARY 表スペースの作成の際に指定できるデータベース・パーティション・グループは、IBMTEMPGROUP だけです。 DATABASE PARTITION GROUP キーワードはオプションです。

データベース・パーティション・グループを指定しないと、 デフォルトのデータベース・パーティション・グループ (IBMDEFAULTGROUP) が、 REGULAR、LARGE、および USER TEMPORARY 表スペースに使用されます。 SYSTEM TEMPORARY 表スペースには、 デフォルト・データベース・パーティション・グループ IBMTEMPGROUP が使われます。

PAGESIZE integer [K]
表スペースに使用するページのサイズを定義します。 接尾部 K を持たない integer の有効値は、4 0968 19216 384 または 32 768 です。接尾部 K を持つ integer の有効値は、4816、または 32 です。integer と K の間には、任意の数のスペースを使用できます (スペースなしでも可)。 ページ・サイズがこれらのいずれの値にも該当しない場合 (SQLSTATE 428DE)、 あるいはページ・サイズが表スペースと関連付けられたバッファー・プールのページ・サイズと 同じではない場合 (SQLSTATE 428CB) には、エラーが起こります。

デフォルト値は pagesize データベース構成パラメーターによって指定されます。これは、データベースの作成時に設定されます。

MANAGED BY AUTOMATIC STORAGE
表スペースが自動ストレージ表スペースになることを指定します。 ストレージ・グループが定義されていないと、エラーが返されます (SQLSTATE 55060)。

自動ストレージ表スペースを最初にどのように作成するかは、データベース・マネージャーによって決定されます。TEMPORARY 表スペースはシステム管理スペース (SMS) 表スペースとして初期化され、永続表スペースはデータベース管理スペース (DMS) 表スペースとして初期化されます。永続表スペースを作成する場合、表スペースのタイプを指定しないと、デフォルト動作として LARGE 表スペースが作成されます。自動ストレージ表スペースを使用すると、データベース・マネージャーは、表スペースが使用するストレージ・グループに関連付けられたストレージ・パスに基づいて、表スペースに割り当てられるコンテナーを判別します。

storage-group
自動ストレージ表スペースのストレージ・グループを指定します。
USING STOGROUP
自動ストレージ表スペースでは、表スペースのデータが格納される表スペースのストレージ・グループを指定します。 storagegroup-name を指定しない場合、現在指定されているデフォルトのストレージ・グループが使用されます。 この節が適用されるのは、自動ストレージ表スペースに対してのみです (SQLSTATE 42613)。
storagegroup-name
表スペース・データが格納されるストレージ・グループを指定します。 storagegroup-name には、現行のサーバー上の既存のストレージ・グループを指定する必要があります (SQLSTATE 42704)。 これは、1 部構成の名前です。
size-attributes
自動ストレージ表スペース、または自動ストレージ表スペースでない DMS 表スペースの、サイズ属性を指定します。 SMS 表スペースは自動サイズ変更可能ではありません。
AUTORESIZE
DMS 表スペースまたは自動ストレージ表スペースの自動サイズ変更機能が有効かどうかを指定します。 自動サイズ変更可能表スペースは、いっぱいになると、サイズを自動的に大きくします。 デフォルトは、DMS 表スペースの場合は NO、自動ストレージ表スペースの場合は YES です。
NO
DMS 表スペースまたは自動ストレージ表スペースの自動サイズ変更機能が無効であることを指定します。
YES
DMS 表スペースまたは自動ストレージ表スペースの自動サイズ変更機能が有効であることを指定します。
INITIALSIZE integer K | M | G
自動ストレージ表スペースの初期サイズをデータベース・パーティションごとに指定します。 このオプションは、自動ストレージ表スペースに対してのみ有効です。 整数値の後に K (キロバイト)、M (メガバイト)、または G (ギガバイト) を指定する必要があります。 使用される実際の値は指定されたものより多少小さい場合があることに注意してください。これは、データベース・マネージャーが表スペース内のコンテナー間で整合したサイズを維持しようとするためです。 さらに自動サイズ変更可能な表スペースで、初期サイズの大きさが不足しており、新規表スペースに追加しなければならないメタデータを入れることができない場合、データベース・マネージャーは十分なスペースになるまで INCREASESIZE の値によって表スペースの拡張を続けます。INITIALSIZE 節が指定されていない場合、データベース・マネージャーが適切な値を判別します。integer の値は、少なくとも 48 K でなければなりません。
INCREASESIZE integer PERCENT または INCREASESIZE integer K | M | G
自動サイズ変更が有効な表スペースで、表スペースがいっぱいでスペース要求が出された場合に表スペース・サイズが自動変更されるときのサイズ増加単位 (データベース・パーティションごと) を指定します。 整数値の後に以下のものを指定しなければなりません。
  • PERCENT。スペースの要求がなされた時点の表スペース・サイズのパーセンテージとして量を指定します。 PERCENT を指定する場合、整数値は 0100 の間でなければなりません (SQLSTATE 42615)。
  • K (K バイト)、M (M バイト)、または G (G バイト)。バイト単位で量を指定します。
使用される実際の値は指定されたものより多少増減する場合があることに注意してください。これは、データベース・マネージャーが表スペース内のコンテナー間で整合した増加量を維持しようとするためです。 表スペースが自動サイズ変更可能であっても、INCREASESIZE 節が指定されていない場合、データベース・マネージャーが適切な値を判別します。
MAXSIZE integer K | M | G または MAXSIZE NONE
自動サイズ変更が有効な表スペースで、自動的に増加可能な最大サイズを指定します。 表スペースが自動サイズ変更可能であっても、MAXSIZE 節が指定されていない場合、デフォルトは NONE です。
integer
DMS 表スペースまたは自動ストレージ表スペースが自動的に増加できるサイズのハード・リミットを、データベース・パーティションごとに指定します。 整数値の後に K (キロバイト)、M (メガバイト)、または G (ギガバイト) を指定する必要があります。 使用される実際の値は指定されたものより多少小さい場合があることに注意してください。これは、データベース・マネージャーが表スペース内のコンテナー間で整合した増加量を維持しようとするためです。
NONE
表スペースをファイル・システムの容量まで、または表スペースの最大サイズ (『SQL と XML の制限』で解説) まで増大できるようにすることを指定します。
MANAGED BY SYSTEM
表スペースが SMS 表スペースになることを指定します。

変更の始まりDB2® pureScale® 環境では、MANAGED BY SYSTEM を指定できません(SQLSTATE 42997)。変更の終わり

変更の始まり
重要: SMS 表スペース・タイプは バージョン 10.1 でユーザー定義の永続表スペースについて非推奨となっており、将来のリリースで除去される可能性があります。SMS 表スペース・タイプは、カタログ表スペースおよび TEMPORARY 表スペースについては非推奨になっていません。 詳しくは、SMS 永続表スペースが推奨されなくなったを参照してください。
変更の終わり
system-containers
SMS 表スペースに対するコンテナーを指定します。
USING ('container-string',...)
SMS 表スペースに関して、表スペースに属し、表スペース・データの保管先となる、 1 つ以上のコンテナーを識別します。 container-string の長さは、240 バイトを超えてはなりません。

container-string は、絶対ディレクトリー名または相対ディレクトリー名にすることができます。

絶対ディレクトリー名でない場合、ディレクトリー名はデータベース・ディレクトリーからの相対ディレクトリー名であり、データベース・ディレクトリーに物理的に関連付けられていないストレージのパス名別名 (またはシンボリック・リンク) にすることができます。 例えば、dbdir/work/c1 は個別のファイル・システムに対するシンボリック・リンクになることができます。

ディレクトリー名のコンポーネントで存在しないものがあれば、データベース・マネージャーによって作成されます。 表スペースがドロップされると、データベース・マネージャーによって作成されたすべてのコンポーネントが削除されます。 container-string で識別されるディレクトリーが存在する場合、それにファイルまたはサブディレクトリーを含めてはなりません (SQLSTATE 428B2)。

container-string の形式は、オペレーティング・システムによって異なります。

オペレーティング・システム 絶対パス名の形式
Linux
AIX®
Solaris
HP-UX
絶対パス名はスラッシュ (/) で始まります
Windows 絶対ディレクトリー・パス名は、ドライブ名とコロン (:) で始まります

相対パス名はどのプラットフォームでも、オペレーティング・システムに依存する文字では始まりません。

変更の始まりNAS や CIFS などのファイル・レベル・プロトコルについては、以下のテクノロジーが使用される場合のみ、リモート・リソース (LAN リダイレクト・ドライブや NFS マウント・ファイル・システムなど) が現在サポートされています。
  • Network Appliance Filers
  • IBM® Network Attached Storage
  • NEC iStorage S2100、S2200、または S4100
  • NEC のストレージ NS シリーズ (Windows 上のデータベース・サーバーに)
    注:
    NEC のストレージ NS シリーズは、無停電電源装置 (UPS) と共に使用する場合にのみサポートされます。(スタンバイではなく) 連続 UPS が推奨されます。
変更の終わり

変更の始まりAIX 上の NFS でマウントされたファイル・システムは、-o nointr オプションを使用して無停電モードでマウントしなければなりません。変更の終わり

変更の始まりiSCSI や FCP などのブロック・レベル・プロトコルは、不揮発性 RAM またはバッテリー・バックアップを備えたバックエンド・ストレージによってサポートされます。 正常完了した書き込みが停電などの障害時に失われないことを、ストレージ・テクノロジーが保証する必要があります。変更の終わり

on-db-partitions-clause
パーティション・データベースにおいて、コンテナーを作成するデータベース・パーティションを指定します。 この節を指定しない場合、他のどの on-db-partitions-clauses にも明示的に指定されていないデータベース・パーティション・グループ内のデータベース・パーティションでコンテナーが作成されます。データベース・パーティション・グループ IBMTEMPGROUP で定義されている SYSTEM TEMPORARY 表スペースについては、 on-db-partitions-clause を指定しないと、 データベースに追加されたすべての新しいデータベース・パーティションでもコンテナーが作成されます。
MANAGED BY DATABASE
表スペースが DMS 表スペースになることを指定します。 表スペースのタイプが指定されていない場合、デフォルトの動作として LARGE 表スペースを作成します。

変更の始まりDb2 pureScale 環境 では、MANAGED BY DATABASE を指定できません(SQLSTATE 42997)。変更の終わり

変更の始まり
重要: バージョン 10.1 フィックスパック 1以降、DMS 表スペース・タイプはユーザー定義の永続表スペースについて非推奨となっており、将来のリリースで除去される可能性があります。DMS 表スペース・タイプは、カタログ表スペースおよび TEMPORARY 表スペースについては非推奨になっていません。 詳しくは、DMS 永続表スペースが推奨されなくなったを参照してください。
変更の終わり
database-containers
DMS 表スペースに対するコンテナーを指定します。
USING
container-clause を導きます。
container-clause
DMS 表スペースに対するコンテナーを指定します。
(FILE|DEVICE 'container-string' number-of-pages,...)
DMS 表スペースの場合、表スペースに属し、表スペース・データの保管先となる、 1 つ以上のコンテナーを識別します。 コンテナーのタイプ (FILE または DEVICE) およびそのサイズ (PAGESIZE ページ単位) を指定します。 またサイズは、整数値の後に K (キロバイト)、M (メガバイト)、または G (ギガバイト) を付けて指定することもできます。 このように指定した場合、バイト数をページ・サイズで割った値を下限に丸めたものを使用してコンテナーのページ数が決定されます。 FILE コンテナーおよび DEVICE コンテナーを混合して指定することも可能です。 container-string の長さは、254 バイトを超えてはなりません。

FILE コンテナーの場合、container-string は、 絶対ファイル名または相対ファイル名でなければなりません。 ファイル名が絶対ファイル名でない場合、データベース・ディレクトリーに対して相対的です。 ディレクトリー名のコンポーネントで存在しないものがあれば、データベース・マネージャーによって作成されます。 ファイルが存在しない場合は作成され、データベース・マネージャーによって指定されたサイズに初期設定されます。 表スペースがドロップされると、データベース・マネージャーによって作成されたすべてのコンポーネントが削除されます。

注: ファイルが存在する場合は上書きされ、ファイルが指定されたサイズより小さい場合は拡張されます。 ファイルが指定されたサイズより大きい場合には切り捨てられません。

DEVICE コンテナーの場合、container-string は装置名でなければなりません。 また、装置が既に存在していなければなりません。

すべてのコンテナーはすべてのデータベース間で固有でなければなりません。 コンテナーは 1 つの表スペースにのみ属することができます。 コンテナーのサイズは異なることがあります。しかし、すべてのコンテナーが同じサイズの場合に最適のパフォーマンスが実現します。 container-string の正しい形式は、オペレーティング・システムによって異なります。

変更の始まりNAS や CIFS などのファイル・レベル・プロトコルについては、以下のテクノロジーが使用される場合のみ、リモート・リソース (LAN リダイレクト・ドライブや NFS マウント・ファイル・システムなど) が現在サポートされています。
  • Network Appliance Filers
  • IBM Network Attached Storage
  • NEC iStorage S2100、S2200、または S4100
  • NEC のストレージ NS シリーズ (Windows 上のデータベース・サーバーに)
    注:
    NEC のストレージ NS シリーズは、無停電電源装置 (UPS) と共に使用する場合にのみサポートされます。(スタンバイではなく) 連続 UPS が推奨されます。
変更の終わり

変更の始まりiSCSI や FCP などのブロック・レベル・プロトコルは、不揮発性 RAM またはバッテリー・バックアップを備えたバックエンド・ストレージによってサポートされます。 正常完了した書き込みが停電などの障害時に失われないことを、ストレージ・テクノロジーが保証する必要があります。変更の終わり

on-db-partitions-clause
パーティション・データベースにおいて、コンテナーを作成するデータベース・パーティションを指定します。 この節を指定しない場合、 他のどの on-db-partitions-clause にも明示的に指定されていないデータベース・パーティション・グループ内のデータベース・パーティションでコンテナーが作成されます。 データベース・パーティション・グループ IBMTEMPGROUP で定義されている SYSTEM TEMPORARY 表スペースについては、 on-db-partitions-clause を指定しないと、 データベースに追加されたすべての新しいデータベース・パーティションでもコンテナーが作成されます。
on-db-partitions-clause
パーティション・データベースにおいて、コンテナーを作成するデータベース・パーティションを指定します。
ON DBPARTITIONNUMS
個々のデータベース・パーティションを指定することを示すキーワードです。 DBPARTITIONNUM は DBPARTITIONNUMS の同義語です。
db-partition-number1
データベース・パーティション番号を指定します。
TO db-partition-number2
データベース・パーティション番号の範囲を指定します。 db-partition-number2 の値は、 db-partition-number1 の値以上でなければなりません (SQLSTATE 428A9)。 コンテナーは、指定する値の範囲内にある (その値も含む) 各データベース・パーティションで作成されます。 指定するデータベース・パーティションは、表スペースのデータベース・パーティション・グループに含まれているものでなければなりません。

番号によって指定するデータベース・パーティションと、データベース・パーティションの範囲によって指定するすべてのデータベース・パーティションは、表スペースのデータベース・パーティション・グループに含まれているものでなければなりません (SQLSTATE 42729)。 データベース・パーティション番号を明示的に、または範囲として指定できるのは、このステートメントのただ 1 つの on-db-partitions-clause の中だけです (SQLSTATE 42613)。

EXTENTSIZE number-of-pages
次のコンテナーに移る前にコンテナーに書き込まれる PAGESIZE ページの数を指定します。 またエクステント・サイズの値は、整数値の後に K (キロバイト) または M (メガバイト) を付けて指定することもできます。 このように指定した場合、バイト数をページ・サイズで割った値を下限に丸めたものを使用してエクステント・サイズの値が決定されます。 データベース・マネージャーは、データが保管されると、コンテナーについてこの処理を繰り返し実行します。

変更の始まりDb2 pureScale 環境では、エクステント・サイズは少なくとも 32 ページを使用する必要があります。 表または索引にエクステントが追加されるとき、この最小エクステント・サイズによって Db2 pureScale 環境内の内部メッセージ・トラフィック量が削減されます。変更の終わり

デフォルト値は dft_extent_sz データベース構成パラメーターによって提供されます。その有効範囲は 2 から 256 ページです。

PREFETCHSIZE
照会によって参照される前に、照会に必要となるデータを読み取るよう指定し、照会が入出力の実行を待たずに済むようにします。

デフォルト値は dft_prefetch_sz データベース構成パラメーターによって指定されます。

AUTOMATIC
変更の始まり表スペースのプリフェッチ・サイズが自動的に更新されるように指定します。 プリフェッチ・サイズは、データベース・マネージャーにより管理されます。

表スペース内のコンテナー数が変化するたびに (1 つ以上のコンテナーを追加またはドロップする ALTER TABLESPACE ステートメントの正常実行の後)、プリフェッチ・サイズが自動的に更新されます。プリフェッチ・サイズは、データベースの開始時にも自動的に更新されます。

変更の終わり
number-of-pages
データのプリフェッチの実行中に、 表スペースから読み取られる PAGESIZE ページの数を指定します。 最大値は 32767 です。
integer K | M
プリフェッチ・サイズ値を、後に K (キロバイトの場合)、または M (メガバイトの場合) を付けた整数値として指定します。 このように指定した場合、バイト数をページ・サイズで割った値を下限に丸めたものを使用してプリフェッチ・サイズのページ数の値が決定されます。
BUFFERPOOL bufferpool-name
この表スペースの表に対して使用するバッファー・プールの名前を指定します。 バッファー・プールは存在している必要があります (SQLSTATE 42704)。 これを指定しない場合、デフォルトのバッファー・プール (IBMDEFAULTBP) が使用されます。 バッファー・プールのページ・サイズは、表スペースに指定された (またはデフォルト指定された) ページ・サイズと一致していなければなりません (SQLSTATE 428CB)。 バッファー・プールに対して、この表スペースのデータベース・パーティション・グループを定義する必要があります (SQLSTATE 42735)。
OVERHEAD number-of-milliseconds または OVERHEAD INHERIT
入出力コントローラーのオーバーヘッド、ディスク・シーク、および待ち時間を指定します。 この値を使用して、照会最適化時の入出力のコストを判別します。 非自動ストレージ表スペースに対して OVERHEAD が指定されていない場合、値のデフォルトには、 このキーワードの説明中に後述するように、データベース作成時のデフォルトが使用されます。 自動ストレージ表スペースに対して OVERHEAD が指定されていない場合、デフォルトでは、そこで使用されているストレージ・グループの値を INHERIT します。 ストレージ・グループの OVERHEAD 値が未定義である場合、OVERHEAD のデフォルトは、データベース作成時のデフォルトになります。
number-of-milliseconds
number-of-milliseconds の値は数値リテラル (整数、10 進数、または浮動小数点数) です。 この値がすべてのコンテナーに同じでなければ、数値は表スペースに属するすべてのコンテナーの平均になるはずです。
INHERIT
INHERIT を指定した場合、表スペースは自動ストレージを使用して定義する必要があり、ストレージ・グループから OVERHEAD が動的に継承されます。 INHERIT は、自動ストレージを使用して表スペースを定義しなかった場合には指定できません (SQLSTATE 42613)。

変更の始まりDb2 バージョン 10.1 以上で作成されたデータベースの場合、PAGESIZE が 4 KB の表スペースでは、デフォルトの入出力コントローラーのオーバーヘッド、ディスク・シーク、および待ち時間は 6.725 ミリ秒です。変更の終わり

Db2 の以前のバージョンから Db2 バージョン 10.1 以降にアップグレードしたデータベースでは、I/O コントローラー・オーバーヘッドと、ディスクのシーク時間と待ち時間のデフォルトは、次のようになります。
  • Db2 バージョン 9.7 以上で作成されたデータベースでは、7.5 ミリ秒
FILE SYSTEM CACHING または NO FILE SYSTEM CACHING
変更の始まり入出力操作をファイル・システム・レベルでキャッシュするか、それともダイレクト入出力を使用してキャッシュしないかを指定します。どちらのオプションも指定しない場合、入出力モードは、オペレーティング・システム、ファイル・システム、およびデータ・オブジェクト・タイプ (SMS 表スペースの場合) に基づいて決定されます。 詳しくは、『ファイル・システム・キャッシング構成』のトピックを参照してください。デフォルト以外のファイル・システム・キャッシング・オプションを一度選択すると、デフォルト (未指定) の動作に戻れなくなることに注意してください。 代わりに、ファイル・システム・キャッシング・モードを明示的に選択する必要があります。
FILE SYSTEM CACHING
ターゲット表スペースでのすべての入出力操作がファイル・システム・レベルでキャッシュに入れられることを指定します。
NO FILE SYSTEM CACHING
すべての入出力操作がファイル・システム・レベルのキャッシュを迂回することを指定します。 SMS 表スペース内の LOB および長形式フィールド・データを除きます。
注: 次の表に示すディスク・セクター・サイズになるようにディスク装置をフォーマットする必要があります。
変更の始まり
オペレーティング・システム ディスク・セクター・サイズ
AIX 512 バイト
Solaris 512 バイト
HP-UX 1024 バイト
Linux 512 バイト
Windows 512 バイト
変更の終わり
変更の終わり
TRANSFERRATE number-of-milliseconds または TRANSFERRATE INHERIT
1 ページをメモリーに読み込むための時間を指定します。非自動ストレージ表スペースに対して TRANSFERRATE が指定されていない場合、値のデフォルトには、 このキーワードの説明中に後述するように、データベース作成時のデフォルトが使用されます。 自動ストレージ表スペースに対して TRANSFERRATE が指定されていない場合、デフォルトでは、そこで使用されているストレージ・グループの値を INHERIT します。 ストレージ・グループの DEVICE READ RATE 値が未定義である場合、TRANSFERRATE のデフォルトは、データベース作成時のデフォルトになります。
number-of-milliseconds
この値を使用して、照会最適化時の入出力のコストを判別します。 number-of-milliseconds の値は数値リテラル (整数、10 進数、または浮動小数点数) です。 この値がすべてのコンテナーに同じでなければ、数値は表スペースに属するすべてのコンテナーの平均になるはずです。
INHERIT
INHERIT を指定した場合、表スペースは自動ストレージを使用して定義する必要があり、ストレージ・グループの DEVICE READ RATE から TRANSFERRATE が動的に継承されます。 INHERIT は、自動ストレージを使用して表スペースを定義しなかった場合には指定できません (SQLSTATE 42613)。

自動ストレージ表スペースが、そこで使用されているストレージ・グループから TRANSFERRATE 設定を継承する場合、ストレージ・グループの DEVICE READ RATE (メガバイト/秒単位) が変換され、その表スペースの PAGESIZE 設定に合わせた、1 ページを読み取るミリ秒数になります。 変換公式は次のようになります。

TRANSFERRATE = ( 1 / DEVICE READ RATE ) * 1000 / 1024000 * PAGESIZE

変更の始まりDb2バージョン 10.1 以降で作成されたデータベースの場合、4 KB PAGESIZE 表スペースで 1 ページをメモリーに読み込むためのデフォルト時間は 0.04 ミリ秒です。変更の終わり

変更の始まりDb2 の以前のバージョンから Db2バージョン 10.1 以降にアップグレードしたデータベースでは、1 ページをメモリーに読み込む時間のデフォルトは、次のようになります。
  • Db2 バージョン 9.17 以上で作成されたデータベースでは、0.06 ミリ秒
変更の終わり
DATA TAG integer-constant、DATA TAG INHERIT、または DATA TAG NONE
表スペース内のデータにタグを指定します。 DATA TAG が指定されていない場合のデフォルトは、自動ストレージ表スペースでは、そこで使用されているストレージ・グループから INHERIT され、非自動表スペースでは、NONE に設定されます。 この値は、作業クラス定義に含まれる WLM 構成の一部として使用することもできますし (CREATE WORK CLASS SET ステートメントを参照)、しきい値定義内で参照することもできます (CREATE THRESHOLD ステートメントを参照)。 この節は、TEMPORARY も指定されている場合には指定できません (SQLSTATE 42613)。
integer-constant
integer-constant の有効値は、1 から 9 までの整数です。integer-constant が指定されていて、関連ストレージ・グループがある場合、その表スペースに指定されたデータ・タグは関連ストレージ・グループで指定されているデータ・タグ値をオーバーライドします。
INHERIT
INHERIT を指定した場合、表スペースは自動ストレージを使用して定義する必要があり、ストレージ・グループからデータ・タグが動的に継承されます。 INHERIT は、自動ストレージを使用して表スペースを定義しなかった場合には指定できません (SQLSTATE 42613)。
NONE
NONE が指定されている場合、データ・タグはありません。
DROPPED TABLE RECOVERY
指定された表スペースからドロップされた表を、ROLLFORWARD DATABASE コマンドの RECOVER DROPPED TABLE オプションによってリカバリーできるようにするかどうかを指定します。この節は、REGULAR 表スペースまたは LARGE 表スペースにのみ指定できます (SQLSTATE 42613)。 変更の始まり
ON
ドロップされた表が回復可能であることを指定します。これはデフォルトです。
オフ
ドロップされた表が回復不能であることを指定します。
変更の終わり

規則

  • 自動ストレージがデータベースに定義されていない場合、エラーが戻されます (SQLSTATE 55060)。
  • INITIALSIZE 節を、MANAGED BY SYSTEM または MANAGED BY DATABASE 節とともに指定することはできません (SQLSTATE 42601)。
  • AUTORESIZE、INCREASESIZE、または MAXSIZE 節を、MANAGED BY SYSTEM 節とともに指定することはできません (SQLSTATE 42601)。
  • AUTORESIZE、INITIALSIZE、INCREASESIZE、または MAXSIZE 節は、TEMPORARY 自動ストレージ表スペースを作成するために指定することができません (SQLSTATE 42601)。
  • INCREASESIZE または MAXSIZE 節は、表スペースが自動サイズ変更不可である場合には指定できません (SQLSTATE 42601)。
  • AUTORESIZE は、ロー・デバイス・コンテナーを使用するよう定義された DMS 表スペースに対しては、使用可能にできません (SQLSTATE 42601)。
  • 表スペースの初期サイズは、5 つのエクステントを保持するのに十分な大きさでなければなりません (SQLSTATE 57011)。
  • 表スペースの最大サイズは、その初期サイズよりも大きくなければなりません (SQLSTATE 560B0)。
  • コンテナー操作 (ADD、EXTEND、RESIZE、DROP、または BEGIN NEW STRIPE SET) は、自動ストレージ表スペースに対しては実行できません。なぜならそのような表スペースのスペース管理は、データベース・マネージャーが制御しているからです (SQLSTATE 42858)。
  • 各コンテナー定義には、53 バイトに加えて、コンテナー名を保管する のに必要なバイト数が必要です。 表スペースのすべてのコンテナー定義を結合した長さは、208 キロバイトを超えることはできません (SQLSTATE 54034)。
  • パーティション・データベースで、複数のデータベース・パーティションが同じ物理ノードに存在する場合、複数のデータベース・パーティションに同じ装置またはパスを指定することはできません (SQLSTATE 42730)。 この環境では、それぞれのデータベース・パーティションごとに固有の container-string を指定するか、相対パス名を使用してください。
  • 変更の始まりDb2 pureScale 環境では、自動ストレージ表スペースのみを作成できます (SQLSTATE 42997)。変更の終わり
  • コンテナー・サイズの制限: DMS 表スペースでは、コンテナーの長さはエクステント・サイズ・ページの長さの 2 倍以上でなければなりません (SQLSTATE 54039)。コンテナーの最大サイズはオペレーティング・システムに依存します。

  • 表スペースをデータベース管理表スペース (DMS) にするか、システム管理表スペース (SMS) にするかは、トレードオフの関係にある基本的な選択です (それぞれの特徴をふまえた上で、どちらが要件に適切かを検討してください)。
  • データベースに複数の TEMPORARY 表スペースが存在する場合は、使用率のバランスを調整するために、複数の表スペースが「ラウンドロビン」式で使用されます。
  • 表スペースの所有者は、その表スペースの作成時に表スペースに関する WITH GRANT OPTION のある USE 特権を付与されます。
  • 自動ストレージ表スペースは、SMS 表スペースまたは DMS 表スペースのいずれかとして作成されます。 DMS は、REGULAR 表スペースおよび LARGE 表スペースの場合に選択され、SMS は TEMPORARY 表スペースの場合に選択されます。 この動作は将来のリリースで変更される可能性があるため、この動作に依存することはできないことに注意してください。 DMS を選択し、表スペースのタイプを指定しない場合は、LARGE 表スペースの作成がデフォルトの動作になります。
  • 自動ストレージ表スペースの作成には、コンテナー定義は含まれません。 データベース・マネージャーは、指定ストレージ・グループまたはデフォルトのストレージ・グループに関連したストレージ・パスを基にして、コンテナーのロケーションおよびサイズを自動的に判別します (該当する場合)。 データベース・マネージャーは、LARGE 表スペースおよび REGULAR 表スペースを、最大サイズに達しないかぎり、必要に応じて拡張しようとします。 これには既存のコンテナーの拡張、または新規ストライプ・セットへのコンテナーの追加が含まれます。 データベースをアクティブにするたびに、データベース・マネージャーは、異常な状態にない TEMPORARY 表スペース用のコンテナーの数およびロケーションを自動的に再構成します。
  • LARGE 自動ストレージ表スペースまたは REGULAR 自動ストレージ表スペースは、表スペースが使用している既存のストレージ・パスの 1 つのスペースがなくなるまでは、新規ストレージ・パスを使用しません (ALTER STOGROUP ステートメントの説明を参照してください)。 TEMPORARY 自動ストレージ表スペースは、データベースが非アクティブにされた後、再度アクティブにされた場合にのみ、新規ストレージ・パスを使用できます。
  • メディア属性: 以下の表では、アップグレードまたは新規作成された Db2 バージョン 10.1 データベースにおいて、新しく作成された表スペースのメディア属性がどのように扱われるかを示します。
    表 1. Db2 の異なるバージョン間のメディア属性
    メディア属性 アップグレードされたデータベース 新規作成されたデータベース
    新規自動ストレージ表スペース / ストレージ・グループ DEVICE READ RATE を undefined に設定 データベースが作成されたバージョンに基づくデフォルト (変更なし) 該当なし
    新規自動ストレージ表スペース / ストレージ・グループ OVERHEAD を undefined に設定 データベースが作成されたバージョンに基づくデフォルト (変更なし) 該当なし
    新規自動ストレージ表スペース / ストレージ・グループ DEVICE READ RATE を設定 PAGESIZE を考慮に入れてストレージ・グループから継承 PAGESIZE を考慮に入れてストレージ・グループから継承
    新規自動ストレージ表スペース / ストレージ・グループ OVERHEAD を設定 ストレージ・グループから継承 ストレージ・グループから継承
    新規非自動ストレージ表スペース データベースが作成されたバージョンに基づくデフォルト (変更なし) PAGESIZE を考慮に入れた Db2 バージョン 10.1 メディアのデフォルト
  • 変更の始まりTRANSFERRATE のデフォルト: 次の表は、新規作成される表スペースごとの TRANSFERRATE のデフォルト値の違いを示しています。
    表 2. TRANSFERRATE のデフォルト
    PAGESIZE TRANSFERRATE
    4 KB ページ読み取りごとに 0.04 ミリ秒
    8 KB ページ読み取りごとに 0.08 ミリ秒
    16 KB ページ読み取りごとに 0.16 ミリ秒
    32 KB ページ読み取りごとに 0.32 ミリ秒
    変更の終わり
  • 変更の始まり代替構文: Db2 の以前のバージョンおよび他のデータベース製品との互換性のために、以下がサポートされています。これらの代替は非標準であり、使用すべきではありません。
    • DBPARTITIONNUM の代わりに NODE を指定できます。
    • DBPARTITIONNUMS の代わりに NODES を指定できます。
    • DATABASE PARTITION GROUP の代わりに NODEGROUP を指定できます。
    • LARGE の代わりに LONG を指定できます。
    変更の終わり

  1. Linux システムで、それぞれ 10 000 個の 4K ページを持った 3 つの装置を使用して、LARGE DMS 表スペースを作成します。 それらの入出力特性も指定します。
       CREATE TABLESPACE PAYROLL
         MANAGED BY DATABASE
         USING (DEVICE'/dev/rhdisk6' 10000,
           DEVICE '/dev/rhdisk7' 10000,
           DEVICE '/dev/rhdisk8' 10000)
         OVERHEAD 12.67
         TRANSFERRATE 0.18
  2. 変更の始まりWindows で、3 つの別個のドライブの 3 つのディレクトリーを使用し、エクステント・サイズを 64 ページ、プリフェッチ・サイズを 32 ページに指定して、REGULAR SMS 表スペースを作成します。
       CREATE TABLESPACE ACCOUNTING
         MANAGED BY SYSTEM
         USING ('/tbsp/acc1', '/tbsp/acc2', '/tbsp/acc3')
         EXTENTSIZE 64
         PREFETCHSIZE 32
    変更の終わり
  3. Linux システムで、それぞれ 50 000 ページの 2 つのファイル、および 256 ページのエクステント・サイズを使用して、SYSTEM TEMPORARY DMS 表スペースを作成します。
       CREATE TEMPORARY TABLESPACE TEMPSPACE2
         MANAGED BY DATABASE
         USING (FILE 'dbtmp/tempspace2.f1' 50000,
           FILE 'dbtmp/tempspace2.f2' 50000)
         EXTENTSIZE 256
  4. Linux システムで、データベース・パーティション・グループ ODDNODEGROUP (データベース・パーティション 1、3、5) に LARGE DMS 表スペースを作成します。各データベース・パーティションで、装置 /dev/rhdisk0 の 10 000 個の 4K ページを使用します。また、それぞれのデータベース・パーティションに、 40 000 個の 4K ページがあるデータベース・パーティション固有の装置を指定します。
       CREATE TABLESPACE PLANS
         MANAGED BY DATABASE
         USING (DEVICE '/dev/rhdisk0' 10000, DEVICE '/dev/rn1hd01' 40000)
         ON DBPARTITIONNUM (1)
         USING (DEVICE '/dev/rhdisk0' 10000, DEVICE '/dev/rn3hd03' 40000)
         ON DBPARTITIONNUM (3)
         USING (DEVICE '/dev/rhdisk0' 10000, DEVICE '/dev/rn5hd05' 40000)
         ON DBPARTITIONNUM (5)
  5. DATATS という名の LARGE 自動ストレージ表スペースを作成し、表スペースのサイズと拡張に関するすべての決定をシステムに任せます。
       CREATE TABLESPACE DATATS
    または
       CREATE TABLESPACE DATATS
         MANAGED BY AUTOMATIC STORAGE
  6. TEMPDATA という名の SYSTEM TEMPORARY 自動ストレージ表スペースを作成します。
       CREATE TEMPORARY TABLESPACE TEMPDATA
    または
       CREATE TEMPORARY TABLESPACE TEMPDATA
         MANAGED BY AUTOMATIC STORAGE
  7. 初期サイズが 100 M バイト、最大サイズが 1 G バイトの、USERSPACE3 という名の LARGE 自動ストレージ表スペースを作成します。
       CREATE TABLESPACE USERSPACE3
         INITIALSIZE 100 M
         MAXSIZE 1 G
  8. 拡張率が 10 パーセント (つまり、自動的にサイズ変更されるたびに、合計サイズが 10 パーセントずつ増加する) で、最大サイズが 512 M バイトの、LARGEDATA という名の LARGE 自動ストレージ表スペースを作成します。INITIALSIZE 節を指定する代わりに、表スペースの適切な初期サイズをデータベース・マネージャーに決定させます。
       CREATE LARGE TABLESPACE LARGEDATA
         INCREASESIZE 10 PERCENT
         MAXSIZE 512 M
  9. 変更の始まり2 つのファイル・コンテナーを持ち (各コンテナーのサイズは 1 M バイト)、拡張率が 2 M バイト、最大サイズが 100 M バイトの、USERSPACE4 という名の LARGE DMS 表スペースを作成します。
       CREATE TABLESPACE USERSPACE4
         MANAGED BY DATABASE USING (FILE '/db/file1' 1 M, FILE '/db/file2' 1 M)
         AUTORESIZE YES
         INCREASESIZE 2 M
         MAXSIZE 100 M
    変更の終わり
  10. Windows オペレーティング・システムで、ロー・デバイスを使用して、LARGE DMS 表スペースを作成します。
    • 物理ドライブ全体を指定する場合は、¥¥.¥physical-drive という形式を使用します。
         CREATE TABLESPACE TS1
           MANAGED BY DATABASE USING (DEVICE '¥¥.¥PhysicalDrive5' 10000,
             DEVICE '¥¥.¥PhysicalDrive6' 10000)
    • ドライブ名を使用して論理パーティションを指定する場合は、以下のようにします。
         CREATE TABLESPACE TS2
           MANAGED BY DATABASE USING (DEVICE '¥¥.¥G:' 10000,
             DEVICE '¥¥.¥H:' 10000)
    • ボリュームのグローバル・ユニーク ID (GUID) を使用して論理パーティションを指定する場合は、db2listvolumes ユーティリティーを使用して、各ローカル・パーティションのボリュームの GUID を取得してから、対象の論理パーティションの GUID を表スペース・コンテナー節にコピーします。
         CREATE TABLESPACE TS3
           MANAGED BY DATABASE USING (
             DEVICE '¥¥?¥Volume{2ca6a0c1-8542-11d8-9734-00096b5322d2}¥' 20000M)
      マシンで使用できるドライブ名の数よりも多くのパーティションがある場合は、ドライブ名形式よりもボリュームの GUID を使用するほうが便利です。
    • 変更の始まりジャンクション・ポイント (またはボリュームのマウント・ポイント) を使用して論理パーティションを指定する場合は、NTFS 形式の別のボリュームにロー・パーティションをジャンクション・ポイントとしてマウントしてから、その NTFS ボリュームのジャンクション・ポイントのパスをコンテナー・パスとして指定します。 以下に例を示します。
         CREATE TABLESPACE TS4
           MANAGED BY DATABASE USING (DEVICE 'C:¥JUNCTION¥DISK_1' 10000,
             DEVICE 'C:¥JUNCTION¥DISK_2' 10000)
      まずパーティションが照会され、そこにファイル・システムが存在するかどうかが調べられます。存在していれば、パーティションは RAW デバイスとして扱われず、通常のファイル・システム入出力操作がパーティションに対して行われます。変更の終わり