SQL 解説書

ALTER TABLESPACE

ALTER TABLESPACE ステートメントは、 以下の方法で既存の表スペースを変更する場合に使用されます。

呼び出し

このステートメントは、アプリケーション・プログラムに組み込むか、 あるいは対話式に発行することができます。 このステートメントは、動的に準備可能な実行可能ステートメントです。 しかし、バインド・オプション DYNAMICRULES BIND を適用する場合、 ステートメントを動的に準備することはできません (SQLSTATE 42509)。

許可

このステートメントの許可 ID には、SYSCTRL 権限または SYSADM 権限がなければなりません。

構文

>>-ALTER--TABLESPACE--tablespace-name--------------------------->
 
      .-------------------------------------------------------------------------------------------.
      V                                                                                           |
>---------+-ADD--+-|  database-container-clause |--+-----------------------+-+-----------------+--+>
          |      |                                 '-|  on-nodes-clause |--' |                 |
          |      '-|  system-container-clause |--|  on-nodes-clause |--------'                 |
          |              (1)                                                                   |
          +--+-EXTEND-+---------+-|  database-container-clause |-+---+-----------------------+-+
          |  '-RESIZE-'         '-| all-containers-clause |------'   '-|  on-nodes-clause |--' |
          +-PREFETCHSIZE--+-number-of-pages-+--------------------------------------------------+
          |               '-integer--+-K-+--'                                                  |
          |                          +-M-+                                                     |
          |                          '-G-'                                                     |
          +-BUFFERPOOL--bufferpool-name--------------------------------------------------------+
          +-OVERHEAD--number-of-milliseconds---------------------------------------------------+
          +-TRANSFERRATE--number-of-milliseconds-----------------------------------------------+
          +-DROPPED TABLE RECOVERY--+-ON--+----------------------------------------------------+
          |                         '-OFF-'                                                    |
          '-SWITCH ONLINE----------------------------------------------------------------------'
 
>--------------------------------------------------------------><
 
 database-container-clause
 
       .-,------------------------------------------------------------.
       V                                                              |
|---(------+-FILE---+--'--container-string--'----+-number-of-pages-+--+---)-->
           '-DEVICE-'                            '-integer--+-K-+--'
                                                            +-M-+
                                                            '-G-'
 
>---------------------------------------------------------------|
 
 system-container-clause
 
       .-,-------------------------.
       V                           |
|---(-----'--container-string--'---+---)------------------------|
 
 on-nodes-clause
 
|---ON----+-NODE--+--(------------------------------------------>
          '-NODES-'
 
      .-,--------------------------------------.
      V                                        |
>--------node-number1--+--------------------+--+--)-------------|
                       '-TO--node-number2---'
 
all-containers-clause
 
            .-CONTAINERS--.
|---(--ALL--+-------------+---+-number-of-pages-+---)-----------|
                              '-integer--+-K-+--'
                                         +-M-+
                                         '-G-'
 

注:

  1. 同じステートメントに ADD、EXTEND、および RESIZE 文節を指定することはできません。

説明

tablespace-name
表スペースの名前を指定します。 これは、1 つの部分からなる名前です。 これは、長形式 SQL 識別子です (通常識別子または区切り識別子のいずれか)。

ADD
ADD は、新しいコンテナーを表スペースに追加することを指定します。

EXTEND
EXTEND は、既存のコンテナーのサイズを増やすように指示します。 指定されるサイズは、既存のコンテナーに追加されるサイズです。 all-containers-clause が指定されると、 表スペースにあるすべてのコンテナーがこのサイズで拡張されます。

RESIZE
RESIZE は、既存のコンテナーのサイズが変更されることを指定します (コンテナー・サイズを小さくすることはできません)。 指定されるサイズが、コンテナーの新しいサイズになります。 all-containers-clause が指定されると、 表スペースにあるすべてのコンテナーがこのサイズに変更されます。

database-container-clause
DMS 表スペースに 1 つまたは複数のコンテナーを追加します。 表スペースは、 すでにアプリケーション・サーバーに存在する DMS 表スペースを指定するものでなければなりません。 *** ページの container-clause の説明を参照してください。

system-container-clause
指定の区分あるいはノードにある SMS 表スペースに、1 つまたは複数のコンテナーを追加します。 表スペースは、 すでにアプリケーション・サーバーに存在する SMS 表スペースを指定するものでなければなりません。 表スペースに対して指定する区分にコンテナーがあってはなりません (SQLSTATE 42921)。 *** ページの system-containers の説明を参照してください。

on-nodes-clause
追加されるコンテナーの区分を指定します。 *** ページの on-nodes-clause の説明を参照してください。

all-containers-clause
DMS 表スペースにあるコンテナーすべてを拡張またはサイズ変更します。 表スペースは、 すでにアプリケーション・サーバーに存在する DMS 表スペースを指定するものでなければなりません。

PREFETCHSIZE number-of-pages
データの事前取り出しの実行中に、 表スペースから読み取られる PAGESIZE ページの数を指定します。 この事前取り出しサイズ値は整数値としても指定でき、 その後に K (K バイトの場合)、M (M バイトの場合)、または G (G バイトの場合) を付けます。 このように指定した場合、ページ・サイズで分割されたバイト数のフロアは、 事前取り出しサイズのページ値の数を判別するために使用します。 事前取り出しでは、照会に必要なデータがその照会で参照される前に読み取られるため、 照会では入出力の実行を待たずにすみます。

BUFFERPOOL bufferpool-name
この表スペースの表に対して使用するバッファー・プールの名前を指定します。 バッファー・プールは、現在データベースに存在している必要があります (SQLSTATE 42704)。 バッファー・プールに対して、 この表スペースのノードグループを定義する必要があります (SQLSTATE 42735)。

OVERHEAD number-of-milliseconds
number-of-milliseconds (ミリ秒数) は、 入出力制御装置のオーバーヘッドとディスク・シーク待ち時間を ミリ秒単位で指定する数値リテラルです (整数、10 進数、または浮動小数点数)。 この数値がすべてのコンテナーで同一でない場合、 それは表スペースに属するすべてのコンテナーの平均でなければなりません。 この値は、照会の最適化の過程で入出力コストを判別するのに使用されます。

TRANSFERRATE number-of-milliseconds
number-of-milliseconds は、 1 ページ (4K または 8K) をメモリーに読み込むための時間をミリ秒単位で指定する数値リテラルです (整数、 10 進数、または浮動小数点数)。 この数値がすべてのコンテナーで同一でない場合、 それは表スペースに属するすべてのコンテナーの平均でなければなりません。 この値は、照会の最適化の過程で入出力コストを判別するのに使用されます。

DROPPED TABLE RECOVERY
指定された表スペースから除去された表は、 ROLLFORWARD コマンドの RECOVER DROPPED TABLE ON オプションを使用して回復させることができます。

SWITCH ONLINE
OFFLINE 状態の表スペースは、コンテナーがアクセス可能であれば、オンラインになります。 コンテナーがアクセス可能でなければ、エラーが戻されます (SQLSTATE 57048)。

例 1: PAYROLL 表スペースに装置を追加します。

   ALTER TABLESPACE PAYROLL
      ADD (DEVICE '/dev/rhdisk9' 10000)

例 2: ACCOUNTING 表スペースの事前取り出しサイズと入出力オーバーヘッドを変更します。

   ALTER TABLESPACE ACCOUNTING
      PREFETCHSIZE 64
      OVERHEAD 19.3

例 3: 表スペース TS1 を作成し、 それからコンテナーをサイズ変更して、 すべてのコンテナーのサイズが 2000 ページになるようにします (3 つの異なる ALTER TABLESPACES を使用して、サイズを変更)。

   CREATE TABLESPACE TS1
      MANAGED BY DATABASE
      USING (FILE '/conts/cont0' 1000,
              DEVICE '/dev/rcont1' 500,
              FILE 'cont2' 700)
  ALTER TABLESPACE TS1
      RESIZE (FILE '/conts/cont0' 2000,
               DEVICE '/dev/rcont1' 2000,
               FILE 'cont2' 2000)

または

  ALTER TABLESPACE TS1
      RESIZE (ALL 2000)

または

  ALTER TABLESPACE TS1
      EXTEND (FILE '/conts/cont0' 1000,
               DEVICE '/dev/rcont1' 1500,
               FILE 'cont2' 1300)

例 4: DATA_TS 表スペースにあるすべてのコンテナーを 1000 ページだけ拡張します。

   ALTER TABLESPACE DATA_TS
      EXTEND (ALL 1000)

例 5: INDEX_TS 表スペースにあるすべてのコンテナーのサイズを 100 メガバイト (MB) に変更します。

   ALTER TABLESPACE INDEX_TS
      RESIZE (ALL 100 M)


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]