Дискретность по размеру mdf файлов на SQL сервере - PullRequest
0 голосов
/ 15 января 2010

У меня есть 2 .bak файлы для той же базы данных в MSSQL Server. Одним из них является тестовый снимок, а другим - производственный снимок. Тестовый - около 500 МБ, а рабочий - около 10 ГБ. Это потому, что в тестовой таблице много усеченных таблиц. Когда я восстанавливаю их на сервере sql, в папке \Microsoft SQL Server\MSSQL.1\MSSQL\Data создается файл .mdf. Но я вижу, что размер файла .mdf составляет около 10 ГБ, даже когда я восстанавливаю только тестовый снимок. Поскольку в тестовом снимке усечено много таблиц, а данных меньше, я бы предположил, что размер файла .mdf должен быть меньше размера рабочего снимка. Но это не тот случай. Резервирует ли сервер sql место в файле mdf и, следовательно, он имеет одинаковый размер для обеих версий?

Ответы [ 3 ]

2 голосов
/ 15 января 2010
  • MDF = место зарезервировано
  • бак = 8 тыс. Страниц с данными

Когда база данных восстанавливается, она считывает размер с sys.database_files. Страницы возвращаются в одно и то же относительное место.

Если у вас действительно недостаточно места на диске, я бы оставил это ... но вы можете уменьшить файлы, если вам станет лучше

Вы используете (приблизительные цифры) 64 000 страниц, но зарезервировали 12 800 000

2 голосов
/ 15 января 2010

Да, это резервирует место. Это можно увидеть на странице создания базы данных, а затем на страницах свойств.

1 голос
/ 16 января 2010

Я думаю, вам нужно запустить следующее в вашей БД.

DBCC SHRINKDATABASE (UserDB, 10);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...