データベース・パーティション式の使用
SMS または DMS コンテナーを作成するときに、 コンテナーのストリング構文にデータベース・パーティション式を指定できます。 データベース・パーティション式は一般に、パーティション・データベース・システムで複数の論理データベース・パーティションを使用する場合に指定します。 この式により、コンテナー名がデータベース・パーティション・サーバー間で固有のものになります。 この式を指定すると、データベース・パーティション番号はコンテナー名の一部となるか、あるいは、 追加の引数を指定すれば、引数の結果はコンテナー名の一部となります。
データベース・パーティション式を指示するには、引数 " $N" ([blank]$N) を使用します。 データベース・パーティション式はストレージ・パス名の中のどこにでも使用でき、複数指定することも可能です。 データベース・パーティション式は、スペース文字で終了します。スペースの後に続くものはすべて、データベース・パーティション式の評価後にストレージ・パス名に追加されます。 データベース・パーティション式の後、ストレージ・パス名内にスペース文字がない場合、そのストリングの残りは式の一部であるとみなされます。 引数 N の前に数字を指定すると ($[number]N)、パーティション番号が、先行ゼロの付いたフォーマットに設定されます。
引数は、以下の表のいずれかの形式を使用して指定する必要があります。 演算子は、左から右へ評価されます。 パーセント記号 (%) は、モジュラス演算子を表します。 次の例中のデータベース・パーティション番号は 10 と想定されています。
構文 | 例 | 値 |
---|---|---|
[blank]$N | "$N" | 10 |
[blank]$[number]N | "$4N" | 0010 |
[blank]$N+[number] | "$N+100" | 110 |
[blank]$N%[number] | "$N%5" | 0 |
[blank]$N+[number]%[number] | "$N+1%5" | 1 |
[blank]$N%[number]+[number] | "$N%4+2" | 4 |
データベース・パーティション式を使用してストレージ・パスを指定した場合、同じストレージ・パス・ストリング (データベース・パーティション式を含む) を使用してパスをドロップする必要があります。 このパス・ストリングは、ADMIN_GET_STORAGE_PATHS 表関数の DB_STORAGE_PATH_WITH_DPE フィールドにあります。 このエレメントは、元のパスにデータベース・パーティション式を含めなかった場合、表示されません。
例
- 2 つのデータベース・パーティションを持つシステムの場合。
以下のコンテナーが作成されます。CREATE TABLESPACE TS1 MANAGED BY DATABASE USING (device '/dev/rcont $N' 20000)
/dev/rcont0 - on database partition 0 /dev/rcont1 - on database partition 1
- 3 つのデータベース・パーティションを持つシステムの場合。
以下のパスが追加されます。ALTER STOGROUP IBMSTOGROUP ADD '/DB2/path $N'
/DB2/path0 - on database partition 0 /DB2/path1 - on database partition 1 /DB2/path2 - on database partition 2
- 4 つのデータベース・パーティションを持つシステムの場合。
以下のコンテナーが作成されます。CREATE TABLESPACE TS2 MANAGED BY DATABASE USING (file '/DB2/containers/TS2/container $N+100' 10000)
/DB2/containers/TS2/container100 - on database partition 0 /DB2/containers/TS2/container101 - on database partition 1 /DB2/containers/TS2/container102 - on database partition 2 /DB2/containers/TS2/container103 - on database partition 3
- 2 つのデータベース・パーティションを持つシステムの場合。
以下のコンテナーが作成されます。CREATE TABLESPACE TS3 MANAGED BY SYSTEM USING ('/TS3/cont $N%2','/TS3/cont $N%2+2')
/TS3/cont0 - On database partition 0 /TS3/cont2 - On database partition 0 /TS3/cont1 - On database partition 1 /TS3/cont3 - On database partition 1
- データベース・パーティションの数が 10 の場合、コンテナーは以下の構文を使用します。
コンテナーは次の名前で作成されます。'/dbdir/node $N /cont1' '/ $N+1000 /file1' ' $N%10 /container' '/dir/ $N2000 /dmscont'
'/dbdir/node5/cont1' '/1005/file1' '5/container' '/dir/2000/dmscont'