Типы запросов и индексы
Обдумывая создания индекса или столбца, оцените, как столбец используется в запросах. Следующая таблица описывает типы запросов, для которых полезны индексы.
Примечание |
---|
Примеры в таблице основаны на образце базы данных AdventureWorks. При запуске примеров в среде SQL Server Management Studio можно просмотреть индексы, выбранные оптимизатором запросов, отобразив действительный план выполнения. Дополнительные сведения см. в разделе Как отобразить фактический план выполнения. |
Запрос, в котором предикатом столбца является один из указанных здесь |
Описание и пример запроса |
Индекс для рассмотрения |
---|---|---|
Точное соответствие конкретному значению |
Ищет точное соответствие, в котором запрос использует предложение WHERE для указания записи в столбце с определенным значением. Например:
|
Некластеризованный или кластеризованный индекс по столбцу EmployeeID. |
Точное соответствие значению в списке IN (x,y,z) |
Ищет точное соответствие значению в указанном списке значений. Например:
|
Некластеризованный или кластеризованный индекс по столбцу EmployeeID. |
Диапазон значений |
Ищет диапазон значений, в котором запрос указывает любое вхождение, содержащее значение между двух указанных значений. Например:
Или
|
Кластеризованный или некластеризованный индекс по столбцу ProductModelID. |
Соединение таблиц |
Ищет строки в таблице, совпадающие со строками в другой таблице, на основе предиката соединения. Например:
|
Некластеризованный или кластеризованный индекс по столбцам ProductID и ProductAssemblyID. |
Cравнение LIKE |
Ищет совпадающие строки таблицы, начинающиеся с определенной символьной строки, например «abc%». Например:
|
Некластеризованный или кластеризованный индекс по столбцу Name. |
Сортировка или группировка |
Требует явного или неявного порядка сортировки или группировки (GROUP BY). Например:
|
Некластеризованный или кластеризованный индекс по столбцу сортировки или группировки. Для столбцов сортировки рассмотрите указание порядка сортировки столбца ASC или DESC. |
Ограничение PRIMARY KEY или UNIQUE |
Ищет дубликаты ключевых значений нового индекса в операциях вставки и обновления для применения ограничений PRIMARY KEY и UNIQUE. Например:
|
Кластеризованный или некластеризованный индекс по столбцу или столбцам, указанным в ограничении. |
Операция UPDATE или DELETE в отношении PRIMARY KEY/FOREIGN KEY |
Ищет строки таблицы в операции обновления или удаления, в которых столбец участвует в отношении PRIMARY KEY/FOREIGN KEY, с параметром CASCADE или без него. |
Некластеризованный или кластеризованный индекс по столбцу внешнего ключа. |
Столбец присутствует в выбранном списке, но не в предикате. |
Содержит один или больше столбцов в списке выбора, которые не используются для уточняющих запросов и подстановок. Например:
|
Некластеризованный индекс с именем FileName, указанным в предложении INCLUDE. |
См. также