Регламентні роботи на сервері ms sql server

Регламентні роботи на сервері ms sql server

Робота встановленого сервера баз даних MS SQL Server багато в чому залежить від того, наскільки грамотно і регулярно проводяться на ньому регламентні завдання і процедури. Від виконання цих робіт залежить стабільність і продуктивність роботи баз даних. Регулярне виконання регламентних робіт входить в Обслуговування сервера MS SQL Server.

Виконання регламентних робіт проводяться штатними засобами самого сервера SQL без необхідності писати спеціальні скрипти, хоча і не виключає їх використання. Питання зводиться до грамотного підходу в налаштуванні і використанні цих коштів. Обслуговування має бути максимально непомітним для користувачів, оптимальний час виконання - це нічний час.

Основні регламентні роботи на сервері MS SQL:

Призначення і періодичність регламентних процедур

Перевірка цілісності бази даних

Будь-які регламентні роботи має сенс тільки з "здорової" базою даних, а для цього необхідно для перевірки розміщення і структурної цілісності таблиць і індексів попередньо провести Перевірку цілісності бази даних.

Час виконання. безпосередньо перед виконанням основних регламентних операцій, тобто не рідше 1 разу на добу.

оновлення статистики

Спираючись на статистичні дані, SQL-сервер підбирає оптимальний план запитів. Однак дані статистики не завжди виявляються актуальними на необхідний момент.

Рекомендований період. не рідше 1 разу на добу.

Очищення процедурного кешу

Для забезпечення кращої продуктивності системи при обробці запиту кешує дані плану запиту, на випадок якщо такий запит повториться, а план його відомий. Але іноді це може і перешкодити оптимальному виконанню запиту, якщо статистика оновилася, а новий оптимальні план для неї побудований не буде. Для виконання Очищення процедурного кешу необхідно виконати наступний SQL запит:

Час виконання. відразу після поновлення статистики в одному завданні (тобто не рідше ніж раз на добу).

Дефрагментація індексів

Так само як і фрагментація файлів при частому їх зміні, призводить до зниження продуктивності файлових операцій, так і фрагментація індексу, що виникає при великому навантаженні на СУБД, призводить до зниження продуктивність системи в цілому. При загальному рівні фрагментації індексу бази більше 25% спостерігається різке падіння продуктивності сервера баз даних.

Рекомендований період. не рідше 1 разу на тиждень, а при великому навантаженні і раз на добу.

Реіндексація таблиць БД

Реіндексація дозволяє істотно підвищити продуктивність системи в цілому. Під час реіндексація виконується повне перестроювання індексів таблиць. Оскільки індекси формуються заново, то після реіндексація сенсу проводити дефрагментацію індексів просто немає.

Оскільки операція проводиться тільки в монопольному режимі і при виконанні блокує таблиці баз MS SQL, то логічно проводити її в неробочий час, наприклад вночі. Всі інші операції проводяться в фоновому режимі без монопольного захоплення таблиць.

Рекомендований період. не рідше 1 разу на тиждень.

Рекомендований період. не рідше 1 разу на добу.

Налаштування регламентних робіт

Регламентні роботи на сервері ms sql server
Створюємо План обслуговування

Налаштування регламентних робіт на SQL-сервері проводимо в MS SQL Server Management Studio. Підключаємося до сервер і заходимо в папку "Управління -> Плани обслуговування". Створити план обслуговування можна "вручну" або за допомогою майстра, часто виходить комбінація цих способів.

Оновлення статистики та Очищення процедурного кешу робимо в одному плані, наприклад раз на добу на годину ночі. Оновлення статистики робимо за допомогою майстра для всіх баз, відкриваємо отримане завдання і додаємо з Панелі елементів ще один елемент «Завдання" Виконання інструкції T-SQL "». Відкривши подвійним клацанням, прописуємо в нього скрипт для очищення кеша, а потім з'єднуємо стрілочкою для вказівки правильної послідовності виконання. Оновлення статистики та Очищення процедурного кешу

Має сенс об'єднати ці завдання в один План обслуговування (наприклад, назвавши його «Індекси»), але для кожного створити окремий Вкладений план зі своїм Планом вкладеного плану.

Оптимізація виконання регламентних робіт

У найпростішому вигляді кожне завдання можна налаштувати у вигляді окремого Плану обслуговування з індивідуальним розкладом. Однак, куди більш розумніше групувати завдання в загальні плани обслуговування. Угруповання завдань може бути виконана за різними ознаками: загальним розкладом (щоденні завдання або щотижневі), по послідовності або залежно виконання і за іншими критеріями.

Для найбільш часто змінюваних таблиць можна налаштувати періодичність регламентних завдань частіше, для всіх інших стандартно раз на добу. Такий підхід дозволить розподілити виконання операцій в часі, знизивши навантаження на сервер під час їх проведення, і в той же час підвищити актуальність і продуктивність роботи системи.

Більш детально про оптимізацію регламентних робіт - в нашій наступній статті.