Правильный способ создания индекса с включенными столбцами?Либо через Management Studio / Toad / etc, либо с помощью SQL ( документация ):
CREATE INDEX idx_table_1 ON db.table_1 (name) INCLUDE (id)
Что если запрос имеет ORDER BY
ORDER BY
используйте индексы, если оптимизатор посчитает нужным (определяется статистикой таблицы и запросом).Вы должны проверить, лучше ли работает составной индекс или индекс со столбцами INCLUDE
, просмотрев стоимость запроса.
Если id
является кластеризованным ключом (хотя не всегда первичным ключом), явероятно, не будет включать столбец ...
Что если у меня в операторе where есть 2 параметра?
То же, что и выше - вам нужно проверить, что лучше всего подходит для вашего запроса.Может быть составным или включать в себя или отдельные индексы.
Но имейте в виду, что:
- настройка для одного запроса не обязательно принесет пользу любому другому запросу
- индексы замедляют выполнение операторов INSERT / UPDATE / DELETE,и требуют обслуживания
- Вы можете использовать Помощник по настройке базы данных (DTA) для рекомендаций по индексам, в том числе, когда некоторые из них являются избыточными
Рекомендуемое чтение
Я настоятельно рекомендую прочитать KimberlyТрипп " переломный момент " для лучшего понимания решений и воздействий индекса.