Как сжать 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 можно сжимать отдельные файлы до размеров, которые явно меньше начальных. Но при этом каждый файл БД придется сжимать по отдельности.
  • Во время использования данных инструкций автоматически сжимаются журналы транзакций до запрошенного размера. Наибольший эффект от сжатия достигается лишь в том случае, если она выполняется после операции, которая создает много лишнего места (например, удаление таблицы).
  • Оцените статью!