表またはパーティションをオンラインで移動(ALTER TABLE MOVE ONLINE)
Oracleオンライン操作コマンド
-- Move the table to another tablespace / reorganize it (DML continues):
ALTER TABLE customer_app.orders MOVE ONLINE TABLESPACE customer_data;
-- Compress while moving (BASIC; for OLTP compression use ROW STORE COMPRESS ADVANCED):
ALTER TABLE customer_app.orders MOVE ONLINE COMPRESS;
-- A single partition:
ALTER TABLE customer_app.sale_part
MOVE PARTITION p2026_h1 ONLINE TABLESPACE customer_archive UPDATE INDEXES;
-- Verify: indexes must stay VALID
SELECT index_name, status FROM dba_indexes
WHERE owner = 'CUSTOMER_APP' AND table_name = 'ORDERS';
SELECT table_name, tablespace_name, compression, compress_for
FROM dba_tables
WHERE owner = 'CUSTOMER_APP' AND table_name = 'ORDERS';概要
表セグメントを書き直す: 断片化と最高水位標(HWM)を削減し、表領域を変更し、圧縮を適用する。ONLINEを指定すると操作中もDMLはブロックされず、インデックスは自動的にメンテナンスされVALIDのまま保たれる。
使用する場面
大量削除後の領域の回収、新しい表領域/ストレージへの表の移動、古いパーティションを圧縮してアーカイブ表領域へ移すために。
注意
Enterprise Editionが必要。ROW STORE COMPRESS ADVANCEDにはAdvanced Compressionオプション(有償)が必要。操作には表サイズと同じ追加領域が必要で、大量のREDOが生成される。開始時と終了時に短いロックが取得され、長時間オープンのトランザクションがあると待機する。ONLINEまたはUPDATE INDEXESなしのMOVEはすべてのインデックスをUNUSABLEにする。