DBAtlas · Атлас эксплуатации баз данных

Перестроение / реорганизация индекса

SQL ServerОбслуживание

Команда

-- Rebuild (high fragmentation > 30%). ONLINE requires Enterprise:
ALTER INDEX IX_Customer_Email ON dbo.Customer
  REBUILD WITH (ONLINE = ON, MAXDOP = 4, SORT_IN_TEMPDB = ON);

-- All indexes of a table:
ALTER INDEX ALL ON dbo.Customer REBUILD WITH (FILLFACTOR = 90);

-- Reorganize (moderate fragmentation 5-30%, always online, can be stopped):
ALTER INDEX IX_Customer_Email ON dbo.Customer REORGANIZE;

Что делает

REBUILD создаёт индекс заново (полностью устраняет фрагментацию, обновляет статистику); REORGANIZE уплотняет конечный уровень на месте (легковесно, без блокировок).

Когда использовать

REORGANIZE при фрагментации 5-30%, REBUILD — выше 30%. Для больших таблиц — в окна обслуживания.

Внимание

ONLINE = ON доступен только в Enterprise/Developer; в Standard используйте OFF (таблица блокируется). REBUILD генерирует много журнала и требует места. MAXDOP и SORT_IN_TEMPDB влияют на использование ресурсов.

Открыть в DBAtlas →

Связанные материалы