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