В этом руководстве вы узнаете, как использовать оператор ALTER TABLE для отключения индексов таблицы.
SQL Server Отключить индексные операторы
Чтобы отключить индекс, используйте оператор ALTER INDEX следующим образом:
ALTER INDEX index_name ON table_name DISABLE;
Чтобы отключить все индексы таблицы, используйте следующую форму оператора ALTER INDEX:
ALTER INDEX ALL ON table_name DISABLE;
Если вы отключите индекс, оптимизатор запросов не будет учитывать этот отключенный индекс при создании планов выполнения запросов.
При отключении индекса в таблице SQL Server сохраняет определение индекса в метаданных, а статистику индекса — в некластеризованных индексах. Однако, если вы отключите некластеризованный или кластеризованный индекс в представлении, SQL Server физически удалит все данные индекса.
Если вы отключите кластеризованный индекс таблицы, вы не сможете получить доступ к данным таблицы с помощью языка манипулирования данными, такого как SELECT, INSERT, UPDATE и DELETE, пока не перестроите или не удалите индекс.
Примеры отключения индекса SQL Server
Давайте рассмотрим несколько примеров отключения индексов, чтобы лучше понять.
A) Отключение примера индекса
В этом примере используется ALTER INDEX для отключения индекса ix_cust_city в таблице sales.customers:
ALTER INDEX ix_cust_city ON sales.customers DISABLE;
В результате следующий запрос, который находит клиентов, находящихся в Сан-Хосе, не может использовать отключенный индекс:
SELECT first_name, last_name, city FROM sales.customers WHERE city = 'San Jose';
Вот предполагаемый план выполнения запроса:
Б) Отключение всех индексов таблицы. Пример
Этот оператор отключает все индексы таблицы sales.customers:
ALTER INDEX ALL ON sales.customers DISABLE;
Следовательно, вы больше не сможете получить доступ к данным в таблице.
SELECT * FROM sales.customers;
Вот сообщение об ошибке:
The query processor is unable to produce a plan because the index 'PK__customer__CD65CB855363011F' on table or view 'customers' is disabled.
Обратите внимание, что вы узнаете, как включить индекс в следующем уроке.
В этом уроке вы узнали, как использовать оператор ALTER INDEX для отключения индексов таблицы.