3.3.3 圧縮レベルの変更

パーティション、表または表領域の圧縮レベルは変更できます。

次の例では、圧縮レベルを変更する場合のシナリオについて説明します。

ある企業では、その売上データにウェアハウス圧縮を使用していますが、6か月より古い売上データにはめったにアクセスしません。売上データがその経過時間に基づいてパーティション化された表に格納されている場合、古いデータの圧縮レベルをアーカイブ圧縮に変更して、ディスク領域を解放できます。

  • パーティション表の圧縮レベルを変更するには、DBMS_REDEFINITIONパッケージを使用します。

    このパッケージでは、表の再定義をオンラインで実行するために、再定義中に表のデータを保持する一時コピーを作成します。再定義される表は、再定義中でも引き続き問合せやDML文に対応できます。オンラインでの表の再定義に使用される空き領域の容量は、既存の表と新しい表の相対的な圧縮レベルに応じて変化します。DBMS_REDEFINITIONパッケージを使用する前に、システム上に十分なハード・ディスク領域が存在することを確認してください。

  • パーティション表の単一パーティションの圧縮レベルを変更するには、ALTER TABLE ... MODIFY PARTITIONコマンドを使用します。

  • 非パーティション表の圧縮レベルを変更するには、COMPRESS FOR句を指定してALTER TABLE ... MOVEコマンドを使用します。

    ALTER TABLE ... MOVEコマンドの実行中に表に対してDML文を実行するには、ONLINE句も追加する必要があります。

  • 表領域の圧縮レベルを変更するには、ALTER TABLESPACEコマンドを使用します。

    これにより、表領域に作成される新規オブジェクトのデフォルトが定義されます。既存のオブジェクトは変更も移動も行われません。

  • 自動データ最適化(ADO)を使用して、圧縮レベルを自動的に調整するポリシーを作成できます。