У нас есть таблица с перегородками.Он также имеет раздел переполнения (максимальный раздел), который действует как универсальный для записей, которые не соответствуют критериям раздела.Идея заключалась в том, чтобы создать разделы заранее, чтобы записи никогда не заканчивались в max_partition.Однако для одной таблицы это было упущено, поэтому все записи оказались в этом единственном разделе.
Теперь большинство этих записей больше не используются, поэтому их можно удалить.Однако наш подход - отбросить разделы, когда они слишком старые.Это не может быть сделано в этом случае.Есть ли простой способ справиться с продувкой?
Может быть, это идея создать разделы сейчас и переместить записи в них, а затем удалить раздел сейчас, но, похоже, производительность будет очень низкой.Другой вариант состоял в том, чтобы создать временную таблицу, где подмножество записей перемещается и удаляется оттуда, но опять же перемещение записей по отдельности кажется трудоемким.Эта таблица содержит около 5 миллионов записей.
Что было бы лучшим путем вперед, с точки зрения производительности.Мы могли бы справиться с небольшим временем простоя, но ненамного.
Мы используем Oracle 11g.
Скрипт создания таблицы выглядит примерно так:
CREATE TABLE "TRANSACTIONS"
("year" number(4,0) NOT NULL ENABLE)
PARTITION BY RANGE ("year")
(PARTITION "P_OLD" VALUES LESS THAN (2010),
PARTITION "P_2011" VALUES LESS THAN (2011),
...
PARTITION "P_MAX" VALUES LESS THAN (MAXVALUE));