断片化されたデータを消去するために行を再作成、 および情報を縮小化することによって、表を再編成します。
効力範囲
このコマンドは、ノード・グループ内のすべてのノードに影響を与えます。
許可
以下のどれかが必要です。
必須接続
データベース
コマンド構文
>>-REORG TABLE--table-name----+--------------------+------------> '-INDEX--index-name--' >-----+-----------------------+-------------------------------->< '-USE--tablespace-name--'
コマンド・パラメーター
注: | 型既定表の場合、指定するテーブル名は階層のルート表の名前でなければなりません。 |
8KB、16KB、または 32KB の表オブジェクトの場合、 ユーザーによって明示的に指定されるシステム一時表スペースのページ・サイズは、 表データ (LONG または LOB 列データを含む) が存在する表スペースのページ・サイズと一致しなければなりません。
例
作業域としてシステム一時表スペース TEMPSPACE1 を使用して EMPLOYEE 表を再編成するには、 次のように入力してください。
db2 reorg table homer.employee using tempspace1
このコマンドは、宣言一時表に対してはサポートされていません。
何回も修正されてデータが断片化して、 アクセス・パフォーマンスが大幅に低下した表も再編成の対象になります。 REORGCHKを使用して、表の再編成が必要であるかどうか判別してください。 すべてのデータベース操作が完了し、すべてのロックが解放されていることを確かめてから、 REORGANIZE TABLE を呼び出してください。 これは、WITH HOLD でオープンされた、 すべてのカーソルをクローズした後で COMMIT または ROLLBACK を発行することによって行われます。 表の再編成の後で、RUNSTATSを使用して表統計を更新し、 REBINDを使用してこの表を使用するパッケージを再バインドします。 再編成ユーティリティーは、暗黙的にすべてのカーソルをクローズします。
表がいくつかのノードに区分されている場合、 影響を受けるノードのいずれかで再編成が失敗すると、 失敗したノードでのみ表の再編成がロールバックされます。
注: | 再編成が成功しなかった場合には、一時ファイルを削除すべきではありません。 データベース・マネージャーは、これらのファイルを使用し、データベースを回復します。 |
索引の名前が指定されると、データベース・マネージャーはその索引の順番に従って、データを再編成します。 パフォーマンスを最善なものにするため、SQL 照会で頻繁に使用される索引を指定してください。 索引の名前が指定されない 場合、 およびクラスター化索引が存在する場合、データはクラスター化索引に従って順序付けられます。
表の PCTFREE 値は、ページごとの空きスペース量を決定するものとなります。 値が設定されていない場合、 ユーティリティーはそれぞれのページで可能なかぎり多くのスペースを満たします。
このユーティリティーは、通称の使用はサポートしていません。
REORGANIZE TABLE は、視点に対しては使用できません。
DMS 表がある表スペースのオンライン・バックアップが実行されている間は、 REORGANIZE TABLE を DMS 表に使用できません。
表の再編成の後に表スペースのロールフォワード回復を完了させるには、 データと長形式表スペースの両方で、 ロールフォワードが使用可能でなければなりません。
その表が、COMPACT オプションを使用しない LOB 列を含む場合、 LOB DATA 記憶域オブジェクトは、表の再編成に従いかなり大きくなることができます。 これは、行が再編成された順序、および使用される (SMS/DMS) 表スペースのタイプの結果になります。
REORGANIZE TABLE では、索引拡張に基づく索引を使用することはできません。
以下も参照