Як стиснути базу 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. Під час використання цих інструкцій автоматично стискаються журнали транзакцій до запитаного розміру. Найбільший ефект від стиснення досягається лише в тому випадку, якщо він виконується після операції, яка створює багато зайвого місця (наприклад, видалення таблиці).