SQL Server 2008 и SQL Server 2008 Express, размер - PullRequest
0 голосов
/ 16 февраля 2011

Я перенес базу данных SQL Server (источник) в базу данных SQL Server Express (судьба). Используется «генерировать скрипты ...» в SSMS.

Я проверил, есть ли у таблиц (протестированных с 3 самыми большими таблицами) в исходной БД одинаковое количество строк, у Express и все выглядело нормально.

Я выполнил sp_spaceused и обнаружил, что исходный размер базы данных составляет 16 МБ, а версия Express - 4 МБ.

Использует ли Express DB меньше места или это признак того, что что-то пошло не так с миграцией?

Спасибо

Ответы [ 2 ]

5 голосов
/ 16 февраля 2011

Причина проста. Когда вы переносите данные, вы делаете очень чистую, упорядоченную вставку. Нет ненужных данных, нет удаленных записей, нет пустых неиспользуемых страниц и т. Д.

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

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

http://www.simple -talk.com / сообщества / блоги / Андраш / Архив / 2009/02/19 / 72068.aspx

0 голосов
/ 16 февраля 2011

Механизм сервера Sql расширит размер файла, как это требуется для его собственных средств. Например, вы могли иметь больше данных в исходной базе данных за один раз, чем в настоящее время. Могу поспорить, что если вы запустите команду сжатия базы данных на исходной БД, вы обнаружите, что размер файла такой же / похожий. Короче говоря, нет, разница в размере файла не является признаком того, что что-то пошло не так.

...