表またはフラグメントを圧縮、リパック、または圧縮とリパックするときに、 フリー スペースを DB 領域に返却 (領域を縮小) したり、圧縮やリパックを行わないで、 フリー スペースを DB 領域に返却したりできます。 フリー スペースを返却すると、フラグメントまたは表の合計サイズが 削減されます。
表の割当てストラテジ を犯すことなく、表全体を安全に縮小できます。 例えば、曜日ごとのフラグメントを持つフラグメント表があり、将来の使用のために 多数のフラグメントが事前割当てされているときに、この割当てストラテジを犯すことなく 表を縮小できます。表が空であれば、IBM® Informix® は、表が作成されたときに 指定された初期エクステント サイズに表を縮小します。
ALTER TABLE 文の MODIFY EXTENT SIZE 節 を使用して、現行エクステント サイズを小さくすることができます。これを行った後で 縮小操作を再実行することにより、初期エクステントを新しいエクステント サイズに 縮小できます。
前提条件: sysadmin データベースに接続できる必要があり (デフォルトでは ユーザ informix のみ)、DBSA である必要があります。
フリー スペースを DB 領域に返却するには、次のようにします。
次の例は、「bob」が所有者であり、「music」データベースにある「opera」という 表を縮小するよう Informix に指示するコマンドを 示します。
EXECUTE FUNCTION task("table shrink","opera","music","bob");
次の例は、
パーティション番号が 14680071 であるフラグメントをリパックおよび縮小するよう Informix に
指示するコマンドを示します。EXECUTE FUNCTION task("fragment repack shrink," "14680071");