Свободное место не удаляется из базы данных, так как записи удаляются. Вместо этого он остается там и используется позже при добавлении новых записей.
Вы можете уменьшить базу данных вручную или периодически устанавливать автоматическое сжатие.
Сжатие вручную:
- С клавиатурой: из окна запроса используйте DBCC SHRINKDATABASE dbname.
- С помощью мыши: в Management Studio щелкните правой кнопкой мыши базу данных и выберите Tasks-> Shrink-> Database.
Автоусадка:
- С помощью клавиатуры: из окна запроса ALTER DATABASE dbname SET AUTO_SHRINK ON.
- С помощью мыши: в Management Studio щелкните правой кнопкой мыши базу данных, выберите «Свойства», выберите «Параметры» и установите для параметра «Автоматическое сжатие» значение True.
Быстрый просмотр документации только говорит о том, что автоусадки происходят "периодически". Я не заметил никаких упоминаний о том, что это за период.
При сжатии базы данных по умолчанию удаляются только пустые страницы в конце файла. Поэтому, если в вашей базе данных есть большое количество пустых страниц, за которыми следует одна использованная страница, она не будет сильно уменьшаться. При сжатии с помощью графического интерфейса в диалоговом окне сжатия имеется опция «Реорганизовать файлы перед освобождением неиспользуемого пространства». Если этот флажок установлен, используемые страницы будут перемещены в начало файла перед усечением конечного пустого пространства, но это также займет больше времени.