Déplacer une table ou une partition en ligne (ALTER TABLE MOVE ONLINE)
OracleOpérations en ligneCommande
-- 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';Ce que fait la commande
Réécrit le segment de la table : réduit la fragmentation et le high water mark, change de tablespace, applique une compression. Avec ONLINE, les DML ne sont pas bloqués pendant l'opération et les index sont maintenus automatiquement et restent VALID.
Quand l'utiliser
Pour récupérer de l'espace après des suppressions massives, déplacer une table vers un nouveau tablespace/stockage, et compresser d'anciennes partitions dans un tablespace d'archive.
Attention
Exige Enterprise Edition ; ROW STORE COMPRESS ADVANCED exige l'option Advanced Compression (payante). L'opération nécessite un espace supplémentaire égal à la taille de la table et génère beaucoup de redo. De brefs verrous sont pris au début et à la fin ; les longues transactions ouvertes la font attendre. Un MOVE sans ONLINE ni UPDATE INDEXES laisse tous les index UNUSABLE.