Правила включения индексов и ограничений

После отключения индекс остается в отключенном состоянии до тех пор, пока он не будет перестроен или удален. Можно включить отключенный индекс путем его перестроения, используя один из следующих методов:

  • Инструкцией ALTER INDEX с предложением REBUILD.

  • Инструкцией CREATE INDEX с предложением DROP_EXISTING.

  • DBCC DBREINDEX.

При использовании одной из этих инструкций индекс будет перестроен и перейдет в активизированное состояние.

ПримечаниеПримечание

Перестроение отключенного кластеризованного индекса не может быть выполнено, когда параметр ONLINE установлен в ON.

После перестроения индекса нужно вручную включить все ограничения, которые были отключены из-за отключения индекса. Ограничения PRIMARY KEY и UNIQUE включаются путем перестроения соответствующего индекса. Индекс должен быть перестроен (включен) до включения ограничений FOREIGN KEY, которые ссылаются на ограничение PRIMARY KEY или UNIQUE. Ограничения FOREIGN KEY включаются с помощью инструкции ALTER TABLE CHECK CONSTRAINT.

Как отключенный кластеризованный индекс влияет на некластеризованные индексы

Когда отключенный кластеризованный индекс перестроен или удален, его влияние на некластеризованные индексы зависит от состояния (отключено или включено) обоих типов индекса. Следующая таблица обобщает эти влияния.

Когда кластеризованный индекс отключен или включен, а некластеризованный индекс отключен, действие кластеризованного индекса на отключенный некластеризованный индекс дает следующие результаты.

При следующем действии кластеризованного индекса

Отключенный некластеризованный индекс

ALTER INDEX REBUILD.

Остается отключенным.

ALTER INDEX ALL REBUILD.

Будет перестроен и включен.

DROP INDEX.

Остается отключенным.

CREATE INDEX WITH DROP_EXISTING.

Остается отключенным.

Разрешенные действия на некластеризованных индексах, связанных с кластеризованным индексом, зависят от состояния (отключен или включен) обоих типов индекса. Следующая таблица обобщает разрешенные действия на некластеризованных индексах.

При следующем действии некластеризованного индекса

И кластеризованные, и некластеризованные индексы отключены

Кластеризованный индекс включен, а некластеризованный индекс либо отключен, либо включен

ALTER INDEX REBUILD.

Не удалось выполнить операцию.

Операция выполнена успешно.

DROP INDEX.

Операция выполнена успешно.

Операция выполнена успешно.

CREATE INDEX WITH DROP_EXISTING.

Не удалось выполнить операцию.

Операция выполнена успешно.