Как сжать sql базу?
3 ноября 2014 г. Просмотров: 1827
В среде SQL Server каждый файл БД можно сжать через удаление неиспользуемых страниц. Хотя пакет Database Engine и оптимизирует распределение дискового пространства, иногда возникают ситуации, когда файлам уже не нужен такой объем, который выделялся им ранее. Программой предусмотрено сжатие файлов базы как вручную, так и автоматически через определенное время. Для автоматического сжатия в среде присутствует БД AUTO_SHRINK, параметр которой достаточно установить в значение ON. При наличии данной базы данных в системе компонент управления Database Engine автоматически сожмет все SQL, в которых есть свободное место. Параметры настраиваются при помощи инструкции ALTER DATABASE, которая изначально имеет значение OFF. Все операции по автоматическому сжатию проходят в фоновом режиме и не влияют на действия пользователя в БД. БД SQL Server сжимаются вручную через инструкцию DBCC SHRINKDATABASE (DBCC SHRINKFILE). Если выбранная инструкция не может зарезервировать место в файле журнала, то выдается информационное сообщение, в котором указывается действие, необходимое для освобождения дискового пространства. При помощи DBCC SHRINKDATABASE вы не можете сжимать БД до размеров, которые меньше исходных. Если база была создана с размером 10Мб, а затем она расширилась до 50Мб, сжать ее можно будет лишь до 10Мб, даже если все данные будут удалены. При помощи DBCC SHRINKFILE можно сжимать отдельные файлы до размеров, которые явно меньше начальных. Но при этом каждый файл БД придется сжимать по отдельности. Во время использования данных инструкций автоматически сжимаются журналы транзакций до запрошенного размера. Наибольший эффект от сжатия достигается лишь в том случае, если она выполняется после операции, которая создает много лишнего места (например, удаление таблицы).
Оцените статью!