Как отсоединить один раздел от таблицы и прикрепить его к другому в Oracle? - PullRequest
4 голосов
/ 25 января 2012

У меня есть таблица с огромными данными (скажем, миллионами записей, это всего лишь пример из практики!) За 5 лет с разделением на каждый год.Теперь я хотел бы сохранить данные за последние 2 года и перенести оставшиеся данные за 3 года в новую таблицу под названием архив?

Каким был бы метод Идеал с минимальным временем простоя и высокой производительностью?

1 Ответ

4 голосов
/ 25 января 2012
alter table exchange partition 

ответ. Эта команда расширяет сегмент раздела с сегментом таблицы. Это на скорости света, потому что он делает только некоторые контрольные связи. Итак, вам нужны некоторые временные таблицы, потому что AFAIK вы не можете обменять их напрямую.

Что-то вроде:

create table tmp_table(same columns);
Add partition p_2011 in table ARCH_TABLE;

ALTER TABLE CURR_TABLE EXCHANGE PARTITION P_2011 WITH TABLE tmp_table;
ALTER TABLE ARCH_TABLE EXCHANGE PARTITION P_2011 WITH TABLE tmp_table;

Пожалуйста, протестируйте ваш код перед запуском.

...