DB2 10.5 for Linux, UNIX, and Windows

カラム・オーガナイズ表のスペース再利用

カラム・オーガナイズ表からデータを削除し、その結果ストレージ・エクステントのページが保持していたデータがすべて削除された場合は、そのストレージ・エクステントはスペース再利用の候補になります。 スペース再利用プロセスはこのようなエクステントを検出して、それらが保持していたページを表スペースのストレージに返却します。 その結果、それらのページは表スペース内の任意の表が再利用できるようになります。

このプロセスは、REORG TABLE コマンドに RECLAIM EXTENTS オプションを指定することによって手動で開始することも、自動化された方法を使用して開始することもできます。 DB2_WORKLOAD レジストリー変数を ANALYTICS に設定すると、デフォルト・ポリシーが適用され、すべてのカラム・オーガナイズ表について自動再利用をアクティブにするように auto_reorg データベース構成パラメーターが設定されます。 詳しくは、『表および索引の自動再編成を有効にする』および『自動保守ポリシーの構成』を参照してください。

再編成モニタリング・インフラストラクチャーにより、表の再編成操作の進行状況をモニターできます。 ADMIN_GET_TAB_INFO 表関数は、表の再利用可能スペースの推定量を返します。この値を参考にして、表の再編成操作が必要となる時点を判断できます。

注: ADMIN_GET_TAB_INFO 表関数の RECLAIMABLE_SPACE 出力は、RUNSTATS コマンドが実行された時点に該当する推定値です。 そのため、カラム・オーガナイズ表に関するこの情報は、失効している可能性があります。

削除後のスペース再利用

カラム・オーガナイズ表の行を削除した場合、その行は (物理的に削除されるのではなく) 論理的に削除されます。 その結果、削除された行が使用していたスペースを後続のトランザクションで利用することはできず、スペース再利用が行われるまで利用不可の状態になります。 例えば、表が作成され、バッチ操作 A で 100 万行が挿入されたとします。バッチ操作 A の実行後、この表のディスク上でのサイズは 5 MB になります。 しばらく後、バッチ操作 B で、さらに 100 万行を挿入します。 この時点で、表はディスク上の 10 MB を使用しています。 次に、バッチ操作 A で挿入した行をすべて削除したとします。その場合、ディスク上の表のサイズは 10 MB のままです。 ここで、3 番目のバッチ操作 C を実行してさらに 100 万行を表に挿入すると、さらに 5 MB のスペースが必要になります。 (行オーガナイズ表では、バッチ操作 C で挿入される行は、行が削除されて空いているバッチ操作 A のスペースを利用します。) バッチ操作 A で挿入した行が使用していたスペースを再利用するには、REORG TABLE コマンドが必要です。

更新後のスペース再利用

カラム・オーガナイズ表で行を更新する場合、まずその行が削除されてから、その行の新しいコピーが表の末尾に挿入されます。 したがって、スペース再利用が行われるまでの間は、行を更新すると、行を更新した回数に比例して消費スペースが増えていきます。 更新が行われたエクステント内のすべての行が削除された後でなければ、スペース再利用を実行できません。