Наше приложение имеет несколько очень больших таблиц на сервере SQL. 500 миллионов строк и 1 миллиард строк в двух таблицах, которые мы хотели бы очистить, чтобы освободить место на диске.
В нашей среде тестирования я попытался запустить chunked delete в al oop, но не думаю, что это приемлемое решение в prod.
Поэтому другой альтернативой является выбор / вставка данных, которые мы хотим сохранить во временную таблицу, усечение / удаление старой таблицы, а затем воссоздание
- indexes
- ограничения внешнего ключа
- разрешения таблицы
- переименование временной таблицы обратно в исходное имя таблицы
Мой вопрос я что-то упустил из своего списка? Существуют ли какие-либо другие объекты / структуры, которые мы потеряем, которые мы должны воссоздать или восстановить? Это было бы катастрофической ситуацией, если бы что-то пошло не так. Так что я играю в это крайне безопасно.
Изменение размера базы данных / добавление дополнительного пространства не является возможным решением. Наше SQL Серверное приложение близится к концу и находится в стадии доработки, поэтому мы пока просто включаем свет.