Під час виконання оновлень та видалень вставок ваші індекси будуть фрагментовані як внутрішньо, так і зовні.
Внутрішня фрагментація - це високий відсоток вільного простору на ваших індексних сторінках, тобто SQL Server повинен читати більше сторінок під час сканування індексу.
Зовнішня фрагментація - це коли сторінки індексу вже не впорядковані, тому SQL Server повинен зробити більше роботи, особливо з точки зору IO, щоб прочитати індекс.
Якщо ваші індекси стануть занадто фрагментарними, в кращому випадку ваші запити будуть менш ефективними, але в гіршому випадку, SQL Server просто перестане використовувати індекси разом, тобто практично всі запити повинні були б виконати сканування таблиці або кластерне сканування індексів. Це сильно зашкодить вашій виставі!
Коли ви реорганізуєте індекс, SQL Server використовує існуючі сторінки індексів і просто переміщує дані в ці віки. Це полегшить внутрішню фрагментацію, а також може видалити невелику кількість зовнішньої фрагментації. Це легша операція з вагою, ніж перебудова, і завжди в Інтернеті.
Під час відновлення індексу SQL Server фактично вдається до даних індексу та використовує новий набір сторінок індексу. Це, очевидно, полегшить як внутрішню, так і зовнішню фрагментацію, але більш важка операція і за замовчуванням призводить до відключення індексу в автономному режимі, хоча він може виконуватися як онлайн-операція, залежно від версії та налаштувань SQL Server.
Однак не сподівайтеся, що після відновлення буде 0 фрагментації. Якщо ви не використовуєте підказку для запиту MAXDOP, SQL Server буде паралельно виконувати операцію відновлення і чим більше задіяних процесорів, тим більше фрагментації, ймовірно, буде, тому що кожен процесор або ядро перероблятиме свій розділ або фрагмент індексу окремо, без огляду на один одного. Це компроміс між найкращими рівнями фрагментації та часом, необхідним для відновлення індексу. Для фрагментації близько 0 використовуйте MAXDOP 1 і сортуйте результати в TempDB.