web-dev-qa-db-ja.com

db2は表を再編成します

db2でテーブルを変更する場合、次のクエリを実行するようにテーブルを再編成する必要があります。

Call Sysproc.admin_cmd ('reorg Table myTable');

テーブルが変更されたときにテーブルを再編成する、またはさまざまな変更を行った後にすべてのスキーマを再編成するための適切なソリューションを探しています

8
senior

再編成操作は、ハードディスクのデフラグに似ています。ページ内の空きスペースを解放し、最終的にはインデックスに従ってデータを再編成できます。機能に応じて、圧縮辞書を作成し、データを圧縮します。

ご覧のとおり、再編成操作は管理タスクであり、データが変更されるたびに行う必要はありません。データベースは再編成なしで実行できます。

これを容易にするために、DB2には自動バックアップなどの自律機能が含まれていましたが、これはあなた自身の質問には答えません。これは、それを必要とするテーブルでのみ再編成をトリガーします。

4
AngocA

_SYSIBMADM.ADMINTABINFO_ :を見ると、テーブルにREORGが必要になる時期を判断できます。

_select tabschema, tabname
  from sysibmadm.admintabinfo
 where reorg_pending = 'Y' 
_

_NUM_REORG_REC_ALTERS_列を確認することもできます。これにより、さまざまな_ALTER TABLE_ステートメントが原因で再編成されないrequire追加のテーブルが表示される場合があります。

5
Ian Bjorhovde

db2構成には、次のものがあります。

自動再編成(AUTO_REORG)= OFF

auto_reorgをonに設定できます

0
senior