Новое для создания индексов в SQL Server. Предположим, у меня есть 3 столбца A, B, C
, ни один из которых не является моим основным ключом. Я создаю много запросов с предложениями WHERE
, которые содержат любые и все их комбинации. Таким образом, некоторые WHERE
статьи могут включать в себя только А, другие А и В, другие В и С, некоторые все три и т.д.Правильное использование нескольких индексов в SQL (SQL Server 2014)
Должен ли я создать индекс для каждой из этих комбинаций?
Если они включают в себя эти колонки как «Включенные столбцы» (как в https://msdn.microsoft.com/en-us/library/ms190806.aspx)
С благодарностью - так должны ли они быть из тех индексов типа «включенные столбцы»? Кроме того, в вашем примере будет работать запрос на 'A' и' C'? – dashnick
@ dashnick: запрос должен использовать ** n самых левых столбцов ** в определении индекса - самый левый ('A'), 2 самых левых (' A', 'B') или 3 слева ('A',' B', 'C'). Ничто из этого не покрывает A + C - так ** нет **, для A + C этот индекс ** бесполезен **. –
Включенные столбцы великолепны, если вам нужно предоставить еще несколько столбцов из вашего запроса, но включенные столбцы ** не могут использоваться ** в запросе, например. они не могут использоваться в разделе WHERE' –