Ваш вариант удаления данных, которые вы хотите сохранить, очень действителен, но работает, только если сохраняемая сумма мала по сравнению с удаляемыми данными.
Для более эффективного удаления вы можете захотеть выполнить пакетную операцию удаления, которая удаляет только первые 1000 строк (не используйте предложение order!), Чтобы размер каждой транзакции удаления оставался небольшим и не удерживал блокировки / использовать много темп и т. д.
Сжатие базы данных после удаления всех данных приведет к фрагментации индекса между прочим, если вам нужно сжать файловую группу, переместить данные в другую файловую группу и, если возможно, удалить оригинальную, любое сжатие фрагментирует вас, заставляя переиндексировать и использовать больше места снова (и вы можете промыть его, но безрезультатно)