которых нужно удалить данные. Главная таблица, и таблица где содержатся ссылки на неё. Главная таблица содержит около 70 млн записей, другие 5 таблиц содержат от 2 до 10 млн записей. Что я делаю: выбираю только ключевое поле из главной таблицы используя up to row (пользователь может указать размер пакета, чтобы данные удалялись частями) (количество циклов 100*размер пакета). Далее выбираю данные по ключевому полю из других таблиц и удаляю с помощью delete from table. Удаление будет происходить на системе, которая в основном используется для тестирования, по сути это анонимизированный клон продакт системы. (Возможно это важно, так как это возможно влиятелен на производительность самой системы). В общем вопрос такой: что стоит учитывать при работе по удалению данных из таблиц с таким количеством данных: - не выбирать все поля (*), а выбирать только нужные, учитывать индексы, выбирать данные «пакетами»… что ещё? Буду благодарна за любые советы . Надеюсь не слишком сумбурно написала.
Требуется скорость? можно отправить в фоновое задание и пускай там удаляет сколько хочет?
Это без проблем. Так и запланировано. Когда выборка была select *, программа выполнялась 11 дней, дальше уже прервали самостоятельно.
Обсуждают сегодня