Это правда, что когда вы проверяете точное равенство, этот порядок не имеет значения.
Но это не означает, что порядок в индексе не имеет значения - возможно, именно это пытался сказать ваш коллега. Например, если у меня есть таблица:
PersonID FName LName
-------- ------- -----
1 John Smith
2 Bill Jones
3 Frank Smith
4 Jane Jackson
...
(assume a significantly large table)
и я определить индекс на нем в порядке (LName, FName), что индекс будет обязательно работать по-другому, чем индекс, определенный в порядке (FName, LName) , в зависимости от того, что представляет собой запрос.
Например, для запроса: SELECT * FROM People WHERE LName = 'Smith'
, вы, скорее всего, получите лучший план для индекса первого типа, чем для второго типа.
Аналогичным образом, SELECT * FROM People WHERE FName = 'John'
будет работать лучше со второй структурой индекса по сравнению с первым.
И SELECT * FROM People WHERE FName = 'John' AND LName = 'Smith'
будет выполнять то же самое независимо от того, в каком порядке создается индекс.
Просьба уточнить ваш вопрос, я не совсем уверен, что вы на самом деле спрашиваете здесь. – Ross
И я тоже. Я не понимаю, что он пытается сказать. – ppshein
Кластеризованный и некластеризованный индекс может быть индексом покрытия - индекс покрытия означает, что индекс ссылается на более чем один столбец. Кластеризованный индекс подразумевает, что это первичный ключ для таблицы, но это не обязательно так. –