REORG TABLESPACE が使用するデータ・セット

REORG TABLESPACE ユーティリティーは、操作中に多くのデータ・セットを使用します。

下の表に、REORG TABLESPACE が使用するデータ・セットのリストを示します。 この表には、データ・セットの識別に使用される DD 名、データ・セットの説明、およびデータ・セットが 必須であるかどうかがリストされています。 必須のデータ・セット、およびオプションのデータ・セットのうち使用する必要のあるデータ・セットのそれぞれについて、 ステートメントを JCL に組み込んでください。

表 1. REORG TABLESPACE が使用するデータ・セット
データ・セット 説明 必須か ?
RNPRINnn ソート・プログラムからのメッセージの入っているデータ・セット (通常は SYSOUT または DUMMY)。 このデータ・セットは、列グループの分散統計が収集される場合に使用されます。 nn は 01 から並列サブタスク数までの間の数値です。 第1位
sysin ユーティリティー制御ステートメントが 入っている入力データ・セット。 はい
SYSUT1 ソート入力用の一時データ・セット。 いいえ
SYSPRINT メッセージ用の出力データ・セット。 はい
STPRIN01 ソート・プログラムからのメッセージ を収容するデータ・セット (通常は、SYSOUT または DUMMY)。

このデータ・セットを使用するのは、データ・パーティション化された少なくとも 1 つの副次索引で統計を収集する場合、またはキーワード COLGROUP および FREQVAL が指定されている場合です。

はい 1, 2, 14
SYSDISC REORG DISCARD からの廃棄レコードの入っているデータ・セット。 デフォルトの DD 名は SYSDISC です。 第4
SYSPUNCH REORG DISCARD または REORG UNLOAD EXTERNAL がデータ・セット DISCARD または UNLOAD に 書き込んだレコードをロードする REORG によって生成された LOAD ステートメントが 入っているデータ・セット。 デフォルトの DD 名は SYSPUNCH です。 第5
UTPRINT ソート・プログラムからのメッセージ を収容するデータ・セット (通常は、SYSOUT または DUMMY)。 はい
アンロード・データ・セット RELOAD フェーズ中に再ロードされるアンロード・データが入っているデータ・セット。 その DD 名またはテンプレート名を、UNLDDN オプションまたは DB2I ユーティリティー・パネル の RECDSN フィールドで指定します。 このデータ・セットは、BSAM が読み取り可能な、順次データ・セットでなければなりません。 デフォルトの DD 名は SYSREC です。

アンロード・データ・セットは、ターゲット表スペースのすべての表から の全アンロード・レコードが入るだけの十分な大きさが必要です。

索引を持たない表が表スペース中に 1 個でもあると、REORG は SHRLEVEL CHANGE を 用いた SORTDATA 法を使用できません。 その結果として、データを SYSREC データ・セットに アンロードする必要があります。
はい6
順次コピー イメージ・コピーが 入る 1 ~ 4 個の出力データ・セット。 それらの DD 名またはテンプレート名を、ユーティリティー制御ステートメント の COPYDDN および RECOVERYDDN オプションで指定します。 No7
FlashCopy® 画像のコピー テーブルスペースまたはインデックススペースレベルのコピーについては、各パーティションまたはピースの出力 FlashCopy イメージコピー用のVSAMデータセット。

パーティション・レベルまたはピース・レベルのコピーの場合、パーティションまたはピースの出力 FlashCopy イメージ・コピー用のVSAMデータセット。

第13号
作業データ・セット ソート入力およびソート出力用の一時データ・ セット。 DD 名の形式は DATAWKnn です。 No8
作業データ・セット ソート・キーをソートするときのソート入出力用の一時データ・セット、または SORTDATA が指定されているときはデータをソートするための一時データ・セットですが、NOSYSRECではなく。 索引作成に並列処理を使用する場合は、DD 名の形式は SWnnWKmm でなければなりません。 索引作成並列処理を使用しない場合、 DD 名の形式は「 SORTWKnn になります。 はい9
ソート作業データ・セット 少なくとも 1 つのデータ・パーティション化副次索引でインライン統計を収集する場合、または COLGROUP オプションまたは COLGROUP オプションまたは FREQVAL オプションが指定されている場合に、ソート入力および出力用の一時データ・セット。 DD名はST 01 WKNNnn形式です。 いいえ3,10,11
ソート作業データ・セット アンロード並列処理用の一時データ・セット。 DD名はDAnnWKmm形式です。 はい11
ソート作業データ・セット 列グループの分散統計を収集する場合の、ソート入出力用の一時データ・セット。

DD 名の形式は RNmmWKnn で、mm はサブタスク番号、nn はタスクごとに割り振られるデータ・セットのシーケンス番号です。

いいえ1,10,11
ソート作業データ・セット 頻度統計を収集する場合の、ソート入出力用の一時データ・セット。

DD 名の形式は SORTWK01 です。

いいえ10,11
印刷データ・セット アンロード並列処理用のデータ・セット。 DD 名にはDTPRINnnという形式があります。

REORG TABLESPACE を呼び出すごとに、新しい DTPRINnn データ・セットが動的に割り振られます。 REORG TABLESPACE は、以前のジョブ・ステップでの DTPRINnn データ・セットを再使用しません。 この動作により、使用可能な JES2 ジョブ・キュー・エレメントが、想定より短時間で消費される可能性があります。

はい 1112
注:
  1. 列グループの分散統計を収集する場合に必要です。
  2. 統計が少なくとも 1 つのデータ・パーティション化副次索引について収集される場合、STPRIN01 が必要ですが、UTPRINT が SYSOUT に割り振られる場合、REORG TABLESPACE は動的に STPRIN01 データ・セットを割り振ります。
  3. 少なくとも 1 つのデータ・パーティション化副次索引についてインライン統計を収集する 際に必要です。
  4. DISCARDDN オプションを指定した場合は必要です。
  5. PUNCHDDN を指定した場合は必要です。
  6. NOSYSREC または SHRLEVEL CHANGE が指定されていない限り必要です。
  7. パーティションが REORG ペンディング状況であるか、あるいは REBALANCE、 COPYDDN、RECOVERYDDN、SHRLEVEL REFERENCE、または SHRLEVEL CHANGE が指定されている場合は必要です。
  8. NOSYSREC または SHRLEVEL CHANGE が指定されており、SORTDEVT が指定されていない場合は必要です。
  9. 索引が存在し、SORTDEVT が指定されていない場合は必要です。
  10. SORT プログラムの DYNALLOC パラメーターがオンになっていない場合は、データ・セット を割り振る必要があります。 それ以外の場合、ソート・プログラムが 一時データ・セットを動的に割り振ります。
  11. SORTDEVT キーワードが指定されている場合、これらのデータ・セットは動的に 割り振られます。 お勧めすることは、動的割り振りを使用することです。これを行うには、このユーティリティー・ステートメントの中で SORTDEVT を指定します。動的割り振りを行う理由は、ユーティリティー・ジョブの JCL 保守の必要性が減少するからです。
  12. UTPRINT が SYSOUT に割り振られている場合、これらのデータ・セットは動的に 割り振られます。
  13. FLASHCOPY YES または FLASHCOPY CONSISTENT を指定する場合に必要です。
  14. オプション COLGROUP および FREQVAL が指定される場合には、これが必要になります。

以下のオブジェクトは、ユーティリティー制御ステートメントで 指定され、JCL で DD ステートメントは不要です。

表スペース
再編成されるオブジェクト。

アンロード・データ・セットのサイズ計算

アンロード・データ・セットに 必要なサイズは、REORG で使用するオプションによって異なります。

  1. UNLOAD PAUSE または CONTINUE を用いた REORG を使用し、KEEPDICTIONARY (コンプレッション・ディクショナリーが既に 存在しているとの前提) を指定した場合、アンロード・データ・セットのサイズ (バイト) は表スペースの VSAM の割り振り済み RBA の最高位置として計算することができます。 割り振り済み RBA の最高位置は関連の VSAM カタログから得ることができます。

    SHRLEVEL CHANGE の場合、次の計算結果 (バイト) を VSAM の使用済み RBA の最高位置に追加します。

    number of records * 11
  2. UNLOAD ONLY、UNLOAD PAUSE または CONTINUE を用いた REORG を使用し、KEEPDICTIONARY を指定 しなかった場合、アンロード・データ・セットのサイズ (バイト) は次の公式で計算することができます。
    maximum row length * number of rows
    行の長さの最大とは、行の長さ (6 バイトのレコード接頭部を含む) に最長のクラスタリング・キー を加えたものです。 表スペースに複数の表が存在する場合は、次の公式を使用して、行の長さの最大を判別します。
    Sum over all tables ((row length + (2 * number of VARBIN 
        columns)) * number of rows)
    SHRLEVEL CHANGE の 場合は、次の式の結果も前期の結果に加算します。 変更の開始
    (23 * ((NEARINDREF + FARINDREF) * 1.1))
    変更の終わり 上記の式の記号の意味は次のとおりです。
    NEARINDREF
    SYSIBM.SYSTABLEPART カタログ表の NEARINDREF 列から 得られる値です。 データ・セットのサイズ計算の精度は、 SYSTABLEPART カタログ内の情報がどのくらい新しいかによって決まります。
    FARINDREF
    SYSIBM.SYSTABLEPART カタログ表の FARINDREF 列から得られる値です。
  3. 可変長フィールドがある場合、 ステップ2の計算により、余分なスペースが生じる可能性があります。 解凍された平均的な行の長さに、行数を掛けたものを使用してください。
  4. UNLOAD PAUSE を用いた REORG、または DISCARD オプションを用いた CONTINUE を使用し、表に可変長フィールドがある場合は、行の長さの最大を計算に使用してくだ さい。 DISCARD オプションを NOPAD オプションなしで使用すると、可変長フィールドへの埋め込みが行われます。

カタログおよびディレクトリーにおける特定の表スペースでは、表スペースの アンロード・データ・セットの形式が異なります。 このデータ・セットのサイズの計算は次のようになります。

data set size in bytes = (28 + longrow) * numrows

上記の式の記号の意味は次のとおりです。

longrow
表スペースでの最長の行の長さ
numrows
データ・セットでの行数

行の長さは次のように計算されます。

Sum of column lengths + 4 bytes for each link

列の長さは次のように計算されます。

Maximum length of the column + 1 (if nullable) + 2 (if varying length)

ソート作業データ・セットのサイズ計算

2 つか 3 つの大きな SORTWKnn データ・セットを 使用する方が、いくつかの小さいデータ・セットを使用するよりも望ましい方法です。 十分なスペースが使用可能でない場合は、REORG を実行することはできません。

ソート作業データ・セットを複数ボリュームにまたがって割り振ることができません。 ボリューム数が少ないほど、同じデータ量のソートに必要となるソート作業データ・セットは多くなります。このため、大きなサイズのボリュームは、必要となるソート作業データ・セット数を減少させます。このため、ボリューム・サイズを大きくすれば、必要となるソート作業データ・セットの数を減少させることができます。

ディスク上にソート作業データ・セットを割り振る場合は、ソート対象のデータが使用するスペースの少なくとも 1.2 倍のスペースを割り振ってください。

通常、 ソート作業データ・セットには、アンロード・データ・セットが使用する スペースの 2 倍を割り振れば十分です。 圧縮データの場合、そのデータを処理のために圧縮解除する必要があるときは、追加のソート・スペースを割り振ります。 既存のデータの圧縮率を使用して、必要となる追加のソート・スペースを計算してください。 圧縮データを圧縮解除する必要がある場合のいくつかの例では、以下を組み込みますが、これだけに限定されません。

  • KEEPDICTIONARY なしの UNLOAD PAUSE
  • KEEPDICTIONARY なしの UNLOAD CONTINUE
  • 廃棄処理
  • ALTER ADD COLUMN などのスキーマ変更の後
  • AUX YES 処理が有効である場合

磁気テープ装置はソート作業データ・セットではサポートされません。

ソート・プログラム・メッセージの宛先指定

REORG ユーティリティー・ジョブ・ステップ には、REORG の SORT フェーズ中に ソート・プログラムが発行するメッセージ の宛先を定義する UTPRINT DD ステートメントが必要です。 DB2I、%DSNU CLIST コマンドおよび DSNUPROC プロシージャーは、以下のデフォルト DD ステートメントを使用します。

//UTPRINT DD  SYSOUT=A

統計ソート作業データ・セットのサイズ計算

ST01WKnn データ・セット・サイズ (バイト) を概算 するには、次の公式を使用します。

2 ×(最大レコード長 × numcols × (count + 2) × 索引数)

上記の公式の変数の値は次のとおりです。

最大レコード長
頻度統計を収集する際に処理される SYSCOLDISTSTATS レコードの 最大レコード長 (この値は、SYSTABLES の RECLENGTH 列から入手できます。)
numcols
指定された索引から頻度数を収集する際に連結するキー列数。
DB2 が収集する頻度数