Назад | Перейти на главную страницу

MSSQL Server Express: как вернуть неиспользуемое пространство

В нашей компании мы используем проприетарное стороннее пользовательское приложение, которое использует SQL Server Express в качестве серверной части. Как вы знаете, SQL Server Express 2008 имеет жесткое ограничение в 10 ГБ. Для «старых» данных в этой базе данных у нас есть отдельная внешняя база данных, в которой мы храним данные.

Я знаю, что покупка SQL Server Enterprise решит эту проблему, но, поскольку компания небольшая, это не решение для нас на данный момент. Нам не нужно хранить «старые» записи в «живой» базе данных SQL Express, которая используется проприетарным программным обеспечением. Таким образом, я могу удалить «старые» записи из базы данных SQL Express, но проблема, с которой я сталкиваюсь, заключается в том, как вернуть пространство, занимаемое «старыми» данными после удаления этих данных. Я не хочу увеличивать фрагментацию с помощью команды DBCC SHRINKDATABASE. Но любая команда, которую я выполняю для восстановления индекса или сжатия базы данных или файлов журнала, не освобождает это пространство. База данных размером 10 ГБ в настоящее время показывает менее 100 МБ неиспользуемого пространства согласно sp_spaceused. Я ценю любой ваш вклад или помощь в решении этой проблемы от одной капли SQL к другой.

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

Однако вы говорите, что SQL сообщает, что есть только 100 МБ неиспользуемого пространства. Вы, наверное, ожидаете, что эта цифра будет выше? Если да, то сколько места вы ожидаете вернуть?

Реорганизация (а не перестройка) индексов займет меньше рабочего места. Вы пробовали это?

Вам нужно будет уменьшить базу данных, если вы хотите освободить свободное пространство.