DB2 Version 9.7 for Linux, UNIX, and Windows

表を再編成する方式の選択

表再編成には、従来の再編成 (オフライン) とインプレース再編成 (オンライン) の 2 つの方法があります。

オフライン再編成がデフォルトの動作です。 オンライン再編成操作を指定するには、REORG TABLE コマンドで INPLACE オプションを使用します。

オンライン表移動のストアード・プロシージャーを使用してインプレース再編成を行うという代わりの方法も使用可能です。『ADMIN_MOVE_TABLE プロシージャーの使用によるオンラインの表の移動』を参照してください。

それぞれの方法には、以下に要約されているように利点と欠点があります。 再編成方式を選択する際、どちらの方法がユーザーの優先順位に適合する利点を備えているか考慮してください。例えば、パフォーマンスよりも、失敗したときにリカバリーできることのほうが重要な場合は、オンライン再編成の方式が適している可能性があります。

オフライン再編成の利点

この方法では以下の利点があります。
  • 最も高速な表再編成操作。特に、ラージ・オブジェクト (LOB) またはロング・フィールドのデータが含まれていない場合に当てはまります。
  • 完了時に表と索引が完全にクラスター化されている。
  • 表の再編成後に索引が自動的に再作成される。索引の再作成のための別個のステップはありません。
  • シャドー・コピーを作成するために TEMPORARY 表スペースを使用する。これにより、ターゲット表または索引が含まれる表スペースに関するスペース要件が軽減されます。
  • データを再クラスター化するために、クラスタリング索引以外の索引を使用する。

オフライン再編成の欠点

この方法には、以下の特徴があります。
  • 表アクセスが限られている。REORG 操作のソートと作成フェーズで可能なのは読み取りアクセスのみです。
  • 再編成されている表のシャドー・コピーに関するスペース要件が大きい。
  • REORG プロセスを十分に制御できない。オフライン REORG 操作を一時停止して再始動することはできません。

オンライン再編成の利点

この方法では以下の利点があります。
  • すべての表アクセスが可能。REORG 操作の切り捨てフェーズ時は例外です。
  • REORG プロセスを十分に制御できる。バックグラウンドで非同期的に実行したり、一時停止、再開、または停止したりすることが可能です。例えば、表に対して更新操作または削除操作が大量に実行されている場合に進行中の REORG 操作を一時停止できます。
  • 失敗時にはプロセスをリカバリーできる。
  • 表が徐々に処理されるので、作業用ストレージに対する要件が軽減する。
  • REORG 操作が完了する前でさえ、再編成の利点をすぐに活かせる。

オンライン再編成の欠点

この方法には、以下の特徴があります。
  • REORG 操作時に表にアクセスするトランザクション・タイプによっては、データまたは索引のクラスター化が不完全になる。
  • オフライン REORG 操作に比べてパフォーマンスが低い。
  • 移動される行の数、表に定義される索引数、およびそうした索引のサイズによっては、ロギング要件が高くなる可能性がある。
  • 索引は保持されているが再作成されていないので、後に索引再編成を行う必要性が生じる可能性がある。
表 1. オンライン再編成とオフライン再編成の比較
特性 オフライン再編成 オンライン再編成
パフォーマンス 高速 低速
完了時のデータのクラスター係数 良好 完全にはクラスター化されない
並行性 (表へのアクセス) アクセスなしから読み取り専用の範囲 読み取り専用からフル・アクセスの範囲
データ・ストレージ・スペース所要量 大きい 大きくない
ロギング・ストレージ・スペース所要量 大きくない 大きくなることがある
ユーザー制御 (処理を一時停止/再開できるかどうか) あまりよく制御できない よく制御できる
リカバリー可能性 リカバリー不能 リカバリー可能
索引再ビルド 行われる 行われない
すべてのタイプの表のサポート はい いいえ
クラスタリング索引以外の索引を指定する機能 はい いいえ
TEMPORARY 表スペースの使用 はい いいえ
表 2. オンライン再編成およびオフライン再編成に関してサポートされる表タイプ
表タイプ オフライン再編成の
サポート
オンライン再編成の
サポート
マルチディメンション・クラスタリング表 (MDC) あり 1 いいえ
範囲がクラスター化された表 (RCT) なし 2 いいえ
付加モードの表 はい なし3
ロング・フィールドまたはラージ・オブジェクト (LOB) データのある表 あり4 はい 5
システム・カタログ表:
  • SYSIBM.SYSCODEPROPERTIES
  • SYSIBM.SYSDATATYPES
  • SYSIBM.SYSNODEGROUPS
  • SYSIBM.SYSROUTINES
  • SYSIBM.SYSSEQUENCES
  • SYSIBM.SYSTABLES
  • SYSIBM.SYSVARIABLES
はい いいえ
注 :
  1. クラスター化は MDC ブロック索引経由で自動的に維持されるため、MDC 表の再編成にはスペース再利用のみが関係します。指定できる索引はありません。
  2. RCT の範囲域は常にクラスター化されたままになります。
  3. オンライン再編成は、付加モードが使用不可になってから実行できます。
  4. ロング・フィールドまたはラージ・オブジェクト (LOB) データの再編成にはかなりの時間がかかる可能性があり、照会パフォーマンスが向上することはありません。スペース再利用のためにのみ行う必要があります。
  5. オンライン表再編成では、LONG/LOB データは再編成されませんが、その他の列は再編成されます。

表再編成の進行状況のモニター

表 REORG 操作の現在の進行状況は、履歴ファイルに書き込まれます。 履歴ファイルには、 それぞれの再編成イベントに関するレコードが含まれます。 このファイルを表示するには、再編成の対象となっている表が格納されているデータベースに対して LIST HISTORY コマンドを実行してください。

このほか、表スナップショットを使用して、表 REORG 操作の進行状況をモニターすることもできます。 表再編成モニター・データは、データベース・システム・モニター表スイッチの設定値にかかわらず記録されます。

エラーが発生した場合、SQLCA メッセージが履歴ファイルに書き込まれます。 インプレース表 REORG 操作の場合、状況は「PAUSED (一時停止)」と記録されます。