既存の表内の圧縮の使用可能化

ALTER TABLE ステートメントを使用することで、圧縮によるストレージ節約の利点を活用するように、既存の表を変更することができます。

始める前に

どのタイプの圧縮を使用するのかを決定する必要があります。 アダプティブ圧縮を使用するか、クラシック行圧縮を使用するか、値圧縮を使用するか、あるいは値圧縮を 2 タイプの行圧縮のいずれかと組み合わせて使用するかを決定します。 アダプティブ圧縮とクラシック行圧縮は、複数の列にまたがるデータ・パターンをより短いシンボル・ストリングで置き換えようとするため、ほとんどの場合ストレージを節約します。 同じ値を含む列が多数ある場合 (市区町村名や国名など)、または列のデータ・タイプのデフォルト値を含む列がある場合は、値の圧縮によって節約できます。

プロシージャー

既存の表で圧縮を使用可能にするには、以下のようにします。

  1. ALTER TABLE ステートメントを発行します。
    • アダプティブ圧縮を使用する場合は、COMPRESS YES ADAPTIVE 節を含めます。
    • クラシック行圧縮を使用する場合は、COMPRESS YES STATIC 節を含めます。
    • 値圧縮を使用する場合は、圧縮する値を含む各列に対して ACTIVATE VALUE COMPRESSION 節を含めます。 システムのデフォルト値が入っている列のデータを圧縮する場合は、COMPRESS SYSTEM DEFAULT 節も組み込みます。
    これ以降に追加、挿入、ロード、または更新するすべて行に、新しい圧縮フォーマットが使用されます。
  2. オプション: 表の既存のすべての行に圧縮を即時に適用するには、 REORG TABLE コマンドを使用して表の再編成を実行します。 この時点ですべての行には圧縮を適用しない場合、圧縮解除された行は、次にそれらの行を更新するか、次に REORG TABLE コマンドを実行するまで、新しい圧縮フォーマットでは保管されません。

例 1: 次のステートメントは、CUSTOMER という名前の既存の表に、アダプティブ圧縮を適用します。

   ALTER TABLE CUSTOMER COMPRESS YES ADAPTIVE

例 2: 次のステートメントは、CUSTOMER という名前の既存の表に、クラシック行圧縮を適用します。

   ALTER TABLE CUSTOMER COMPRESS YES STATIC

例 3: 以下のステートメントは、行、値、およびシステム・デフォルト圧縮を、EMPLOYEE_SALARY という名前の既存の表の SALARY 列に適用します。 表はその後、再編成されます。

ALTER TABLE EMPLOYEE_SALARY 
ALTER SALARY COMPRESS SYSTEM DEFAULT
COMPRESS YES ACTIVATE VALUE COMPRESSION;

REORG TABLE EMPLOYEE_SALARY