У меня огромная таблица (3 миллиарда строк), которая, к сожалению, в основном содержит просроченные данные. Я хочу просто удалить все эти просроченные строки, а остальные оставить.
Я могу выполнить такую инструкцию:
delete from giganticTable where exp_date < getDate()
План выполнения каким-то образом предполагает, что около 400 миллионов строк будут удалены.
При выполнении, Это не только не завершается через час, но и файл журнала транзакций базы данных также увеличивается с 6 ГБ до 90 ГБ. Обратите внимание, что база данных находилась в модели восстановления с неполным протоколированием, пока это происходит. В конце концов я отменил этот запрос, так как уверен, что должен быть лучший способ сделать это.
У меня есть несколько таблиц, с которыми мне нужно выполнить аналогичную операцию. Каков самый быстрый и наиболее экономичный способ просто удалить эти строки, если у меня нет абсолютно никакого желания когда-либо их восстанавливать?
Обратите внимание, что я ' m с использованием Microsoft SQL Server 2005.