パーティションの入れ替え
ALTER TABLE ステートメントを使用すると、どの論理パーティションも最終パーティションになるように循環できます。 パーティションの循環は、パーティション化 (非 UTS) 表スペースおよびパーティションごとの表スペースに対してサポートされますが、増加対応パーティション表スペースに対してはサポートされません。
このタスクについて
NULL 可能なパーティション列: Db2を使用すると、NULL 可能な列をパーティション列として使用できます。 ただし、表制御のパーティション化では、Db2は、パーティション・キーの順序に応じて、NULL 可能なパーティション列を持つ表に NULL 値を挿入することを制限することができます。 循環操作の後、パーティション・キーが昇順になっている場合、Db2はキー列に NULL 値を持つ行が挿入されないようにします。 パーティション・キーが降順の場合、Db2はキー列に NULL 値を持つ行の INSERT を許可します。 この行は先頭パーティションに挿入されます。
プロシージャー
最後のパーティションになるようにパーティションを回転させるには:
- ALTER TABLE ステートメントを出して ROTATE PARTITION オプションを指定します。
- オプション: RUNSTATS ユーティリティを実行します。
例
| パーティション | 限界値 | パーティションをバックアップするデータ・セット名 |
|---|---|---|
| P008 | 12/31/2004 | catname.DSNDBx.dbname.psname .I0001.A008 |
| P009 | 12/31/2005 | catname.DSNDBx.dbname.psname .I0001.A009 |
| P010 | 12/31/2006 | catname.DSNDBx.dbname.psname .I0001.A010 |
テーブルTRANSの最初のパーティションを最後のパーティションにするには、次の文を発行します
ALTER TABLE TRANS ROTATE PARTITION FIRST TO LAST
ENDING AT ('12/31/2007') RESET; 昇順の限界値を持つ表の場合は、ENDING AT 節のデータは前のパーティションの限界値よりも大きくなければなりません。 Db2 最初のパーティションを、最も低い上限値を持つパーティションとして選択します。
降順の限界値を持つ表の場合は、データは前のパーティションの限界値より小さくなければなりません。 Db2 最初のパーティションを、上限値が最も高いパーティションとして選択します。
RESET キーワードは、最初の論理パーティション内の既存のデータを削除することを指定しており、削除トリガーは活動化されません。 最も古い (または最初の) パーティションが P001 であるため、Db2は新しい限界値を P001 に割り当てます。 このパーティションは、12/31/2007 の新規限界値と 12/31/2006 の前限界値の間の範囲内にあるすべての行を保持します。 RESET 操作は既存のデータをすべて削除します。 ALTER が完了したら、パーティションを即時に使用できます。 テーブルが大きい場合、またはローテーション前の最後のパーティションが空の場合、パーティションはREORG保留(REORP)状態にはなりません。
以下の表は、先頭パーティションが入れ替わって、最終パーティションになった後の、表スペースの表示形式を示しています。
| パーティション | 限界値 | パーティションをバックアップするデータ・セット名 |
|---|---|---|
| P002 | 12/31/1997 | 猫名.DSNDB x。 データベース名。 psname.I0001.A002 |
| P003 | 12/31/1998 | 猫名.DSNDB x。 データベース名。 psname.I0001.A003 |
| P004 | 12/31/1999 | 猫名.DSNDB x。 データベース名。 psname.I0001.A004 |
| P005 | 12/31/2000 | 猫名.DSNDB x。 データベース名。 psname.I0001.A005 |
| P006 | 12/31/2001 | 猫名.DSNDB x。 データベース名。 psname.I0001.A006 |
| P007 | 12/31/2002 | 猫名.DSNDB x。 データベース名。 psname.I0001.A007 |
| P008 | 12/31/2003 | 猫名.DSNDB x.db 名.ps名.I0001.A008 |
| P009 | 12/31/2004 | 猫名.DSNDB x。 データベース名。 psname.I0001.A009 |
| P010 | 12/31/2005 | 猫名.DSNDB x。 データベース名。 psname.I0001.A010 |
| P011 | 12/31/2006 | 猫名.DSNDB x。 データベース名。 psname.I0001.A011 |
| P001 | 12/31/2007 | 猫名.DSNDB x。 データベース名。 psname.I0001.A001 |