IBM® Informix® 12.10

フリー スペースの DB 領域への返却

表またはフラグメントを圧縮、リパック、または圧縮とリパックするときに、 フリー スペースを DB 領域に返却 (領域を縮小) したり、圧縮やリパックを行わないで、 フリー スペースを DB 領域に返却したりできます。 フリー スペースを返却すると、フラグメントまたは表の合計サイズが 削減されます。

表の割当てストラテジ を犯すことなく、表全体を安全に縮小できます。 例えば、曜日ごとのフラグメントを持つフラグメント表があり、将来の使用のために 多数のフラグメントが事前割当てされているときに、この割当てストラテジを犯すことなく 表を縮小できます。表が空であれば、IBM® Informix® は、表が作成されたときに 指定された初期エクステント サイズに表を縮小します。

縮小操作を開始すると 、Informix は次のようにエクステントを短縮します。
  • 初期エクステントを除くすべてのエクステントのサイズを可能な限り小さくします。
  • 表全体が初期エクステントに収まっている (例えば、表が空である) 場合に、CREATE TABLE 文でその表を作成したときに指定したエクステント サイズより小さいサイズに、Informix が初期エクステントを縮小することはありません。

ALTER TABLE 文の MODIFY EXTENT SIZE 節 を使用して、現行エクステント サイズを小さくすることができます。これを行った後で 縮小操作を再実行することにより、初期エクステントを新しいエクステント サイズに 縮小できます。

前提条件: sysadmin データベースに接続できる必要があり (デフォルトでは ユーザ informix のみ)、DBSA である必要があります。

フリー スペースを DB 領域に返却するには、次のようにします。

  1. table shrink 引数 または fragment shrink 引数を指定して、admin() 関数 または task() 関数を実行します。

    例えば、表の場合は、次のように指定します。

    EXECUTE FUNCTION admin("table shrink", "table_name",
    "database_name", "owner_name");

    表名は必須です。 データベース名および所有者名はオプションです。データベース名または所有者名を指定しなかった場合、Informix では、現行の データベース名および所有者名を使用します。

    例えば、フラグメントの場合は、次のように指定します。

    EXECUTE FUNCTION task("fragment shrink", "partnum_list");

    partnum_list は、同じ表に属すパーティション番号 をスペースで区切ったリストです。

  2. オプションで、引数を拡張して、次の任意の組み合わせで compress および repack を 含めます。
    • compress repack shrink
    • compress shrink
    • repack shrink

次の例は、「bob」が所有者であり、「music」データベースにある「opera」という 表を縮小するよう Informix に指示するコマンドを 示します。

EXECUTE FUNCTION task("table shrink","opera","music","bob");
次の例は、 パーティション番号が 14680071 であるフラグメントをリパックおよび縮小するよう Informix に 指示するコマンドを示します。
EXECUTE FUNCTION task("fragment repack shrink," "14680071");


フィードバックの送信 | 例の共有 | トラブルシューティング

PDF を見つけるには、Publications for the IBM Informix 12.10 family of products を参照してください。
リリース ノート、ドキュメント ノート、マシン ノートについては、リリース ノート・ページを参照してください。
タイムスタンプ リリース日: 2013 年 3 月