圧縮済みの表の圧縮の変更または使用不可化

ALTER TABLE ステートメントのさまざまな圧縮関連の節を 1 つ以上使用することで、表の圧縮方法を変更することや、アダプティブ圧縮、クラシック行圧縮、または値圧縮が使用可能になっている表の圧縮を完全に使用不可にすることができます。

このタスクについて

アダプティブ圧縮またはクラシック行圧縮を非アクティブ化する場合、索引圧縮は影響されません。 索引を解凍する場合は、ALTER INDEX ステートメントを使用する必要があります。

プロシージャー

表の圧縮を使用不能にする、または行圧縮のタイプを変更するには、以下のようにします。

  1. ALTER TABLE ステートメントを発行します。
    • アダプティブ圧縮またはクラシック行圧縮を非アクティブ化する場合は、COMPRESS NO 節を含めます。
    • 別のタイプの行圧縮に変更する場合は、COMPRESS YES ADAPTIVE 節または COMPRESS YES STATIC 節を使って、使用する圧縮のタイプを指定します。 例えば、クラシック行圧縮が現在使用されている表があり、これをアダプティブ圧縮に変更する場合は、COMPRESS YES ADAPTIVE 節を持つ ALTER TABLE ステートメントを実行します。
    • 値圧縮を非アクティブ化する場合は、DEACTIVATE VALUE COMPRESSION 節を含めます。
    • システム・デフォルト値の圧縮を非アクティブ化する場合は、ALTER column name 節に COMPRESS OFF オプションを含めます。
  2. REORG TABLE コマンドを使用してオフライン表再編成を実行します。

結果

  • COMPRESS NO 節を使用して行圧縮をオフにすると、すべての行データが圧縮解除されます。
  • 行圧縮のタイプを変更すると、表全体が、ALTER TABLE ステートメントで指定した行圧縮のタイプを使用して圧縮されます。 ( 例 2を参照してください。)
  • 値圧縮を使用不能にすると、以下の効果があります。
    • 表に COMPRESS SYSTEM DEFAULT が有効な列がある場合、それらの列の圧縮は使用可能ではなくなります。
    • 圧縮解除された列によって、行のサイズが、現行表スペースの現行ページ・サイズで許可されている最大値を超える可能性があります。 この場合には、エラー・メッセージ SQL0670N が返されます。

例 1: 行圧縮をオフにする: 次のステートメントは、CUSTOMER という名前の表に対するアダプティブ圧縮またはクラシック行圧縮をオフにしてからその表を再編成して、以前に圧縮されたデータを圧縮解除します。
     ALTER TABLE CUSTOMER COMPRESS NO 
     REORG TABLE CUSTOMER
例 2: 静的圧縮からアダプティブ圧縮への変更: SALES 表で現在クラシック行圧縮が使用されていると想定します。 次のステートメントは、使用される圧縮のタイプを、アダプティブ圧縮に変更します。
     ALTER TABLE SALES COMPRESS ADAPTIVE YES 
     REORG TABLE SALES