Як стиснути sql базу

Як стиснути sql базу

У середовищі SQL Server кожен файл БД можна стиснути через видалення невживаних сторінок. Хоча пакет Database Engine і оптимізує розподіл дискового простору, іноді виникають ситуації, коли файлів вже не потрібен такий обсяг, який виділявся ним раніше. Програмою передбачено стиснення файлів бази як вручну, так і автоматично через певний час.

Інструкція

  1. Для автоматичного стиснення в середовищі присутня БД AUTO SHRINK, параметр якої достатньо встановити в значення ON. При наявності даної бази даних у системі компонент управління Database Engine автоматично стисне всі SQL, в яких є вільне місце. Параметри настроюються за допомогою інструкції ALTER DATABASE, яка спочатку має значення OFF. Всі операції з автоматичного стиску проходять у фоновому режимі і не впливають на дії користувача в БД.
  2. БД SQL Server стискаються вручну через інструкцію DBCC SHRINKDATABASE (DBCC SHRINKFILE). Якщо обрана інструкція не може зарезервувати місце у файлі журналу, то видається інформаційне повідомлення, в якому вказується дія, необхідна для звільнення дискового простору.
  3. За допомогою DBCC SHRINKDATABASE ви не можете стискати БД до розмірів, які менше вихідних. Якщо база була створена з розміром 10Мб, а потім вона розширилася до 50Мб, стиснути її можна буде лише до 10Мб, навіть якщо всі дані будуть видалені.
  4. За допомогою DBCC SHRINKFILE можна стискати окремі файли до розмірів, які явно менше початкових. Але при цьому кожен файл БД доведеться стискати окремо.
  5. Під час використання цих інструкцій автоматично стискаються журнали транзакцій до запитаного розміру. Найбільший ефект від стиснення досягається лише в тому випадку, якщо вона виконується після операції, яка створює багато зайвого місця (наприклад, видалення таблиці).

Зверніть увагу Зверніть увагу

Не слід включати AUTO SHRINK без причини, оскільки це значно сповільнить роботу системи, а в більшості випадків це просто марно.

Корисні поради

DBCC SHRINKDATABASE і SHRINKFILE можна зупинити на будь-якому етапі, але вся виконана робота зберігається.