Наш сервер SQL живе на SAN. Він містить десятки баз даних OLTP, деякі з кількома таблицями, що містять понад 1м записів.
Ми виконуємо сценарії технічного обслуговування індексу Ola Hallengren щотижня, і він працює щоразу кілька годин. Спираючись на поріг фрагментації, сценарій буде або реорганізувати, або повторно встановити індекс. Ми помітили, що під час повторного деіндексів файли журналів отримують величезну кількість, що призводить до надмірного споживання пропускної здатності під час доставки журналу.
Потім виходить стаття Brent Ozar, в якій він говорить, щоб перестати турбуватися про індекси SQL :
Ваші жорсткі диски поділяються з іншими серверами, які одночасно роблять запити на диски, тому диски завжди будуть стрибати всюди, щоб отримати дані. Дефрагмація ваших індексів - просто безглузда зайнята робота.
Гуглінг цього питання призводить до різних думок, більшість з яких підтримується аргументами, які здаються занадто короткими або слабкими. Наш попередній план полягає в тому, щоб відкоригувати поріг фрагментації в нашому сценарії технічного обслуговування, щоб він реорганізувався набагато частіше, ніж повторно встановлюється.
Який остаточний вердикт? Чи варто дефрагментувати індекси SQL на SAN з урахуванням тягарів, пов’язаних із запуском щотижневих завдань з обслуговування?