Файл резервной копии SQL Server значительно меньше после воссоздания таблицы

Файл резервной копии SQL Server значительно меньше после воссоздания таблицы

Мы запускаем автоматизированное еженедельное резервное копирование нашего SQL Server. База данных настроена на простое восстановление. Мы делаем резервное копирование с помощью полного, а не дифференциального резервного копирования.

Недавно нам пришлось пересоздать одну из наших таблиц с данными в ней (увеличив 2 поля varchar на пару символов). Для этого потребовалось запустить скрипт, который создал новую таблицу, скопировал данные и затем удалил старую. Это сработало правильно.

Как ни странно, наши еженедельные файлы резервного копирования теперь УМЕНЬШИЛИСЬ более чем на 75%! Таблицы не имеют больших индексов. Все данные были скопированы правильно (и проверены). Я проверил, что мы делаем полные, а не инкрементальные резервные копии. Новые файлы восстанавливаются просто отлично.

Я не могу понять, почему файлы резервных копий так сильно уменьшились? Я также заметил, что они становятся примерно на 10 МБ больше каждую неделю, хотя добавляется меньше этого объема данных.

Я предполагаю, что я просто чего-то не понимаю. Любое понимание будет оценено.

решение1

Если все данные там, то это комбинация журналов транзакций для базы данных, которые фиксируются в базе данных и удаляются с диска, и любое "белое пространство" в базе данных устраняется. Для большинства баз данных, когда данные удаляются, строка удаляется, но никаких новых данных в эту строку после этого не вставляется, так что вы можете получить значительный объем "белого пространства", которое не содержит данных, но все равно занимает физическое пространство.

Существует разница между логическим размером базы данных (размером, занимаемым ее данными) и физическим размером базы данных (размером, занимаемым файлом или файлами базы данных), причем эта разница обычно [почти исключительно] представляет собой комбинацию двух вещей, упомянутых выше.

Связанный контент