5ГБ - бесполезное измерение размера таблицы.Общее количество строк имеет значение.Количество строк, которые вы собираетесь удалить как доля от общего значения.Средняя длина строки имеет значение.
Если пропорция удаляемых строк мала, это может стоить того, чтобы создать индекс для screatetime
, который впоследствии будет удален.Это может означать, что вся ваша операция занимает больше времени, но, что важно, это уменьшит время, необходимое для удаления строк.
С другой стороны, если вы удаляете большой кусок строк, вы можете найти еголучше
- Создать копию таблицы, используя 'create table t1_copy as select * from t1, где screatedate> = to_date (' 2009-06-01 ',' yyyy-mm-dd ') `
- Поменяйте местами таблицы с помощью команды
rename
. - Повторно примените ограничения, индексы к новому T1.
Еще одна вещь, которую следует иметь в виду, заключается в том, чтоудаления поглощают больше UNDO, чем другие транзакции, потому что они требуют больше информации для отката.Поэтому, если ваши записи длинные и / или многочисленные, вашему администратору БД может потребоваться проверить табличное пространство UNDO (или сегменты отката, если вы все еще используете их).
Наконец, вы провели какое-либо расследование, чтобы выяснить, где находитсявремя на самом деле идет?Операторы DELETE - это просто еще один запрос, и их можно решить, используя обычный набор настроек.