Перенести таблицу или секцию онлайн (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';Что делает
Перезаписывает сегмент таблицы: уменьшает фрагментацию и high water mark, меняет табличное пространство, применяет сжатие. С ONLINE DML не блокируется во время операции, а индексы обслуживаются автоматически и остаются VALID.
Когда использовать
Чтобы вернуть пространство после массовых удалений, перенести таблицу в новое табличное пространство/хранилище и сжать старые секции в архивное табличное пространство.
Внимание
Требует Enterprise Edition; ROW STORE COMPRESS ADVANCED требует опции Advanced Compression (платная). Операции нужно дополнительное место, равное размеру таблицы, и она создаёт большой объём redo. В начале и в конце берутся кратковременные блокировки; долгие открытые транзакции заставляют её ждать. MOVE без ONLINE или UPDATE INDEXES оставляет все индексы в состоянии UNUSABLE.