Il est vrai que lorsque vous vérifiez l'égalité exacte, cet ordre n'a pas d'importance. Mais cela ne veut pas dire que l'ordre dans l'index n'a pas d'importance - c'est peut-être ce que votre collègue essayait de dire. Par exemple, si j'ai une table:
PersonID FName LName
-------- ------- -----
1 John Smith
2 Bill Jones
3 Frank Smith
4 Jane Jackson
...
(assume a significantly large table)
et je définis un index sur dans l'ordre (LName, FName), cet indice va nécessairement effectuer différemment un index défini dans l'ordre (FName, LName) , en fonction de la requête. Par exemple, pour la requête SELECT * FROM People WHERE LName = 'Smith'
, vous obtiendrez probablement un meilleur plan pour le premier type d'index que pour le second type.
De même, SELECT * FROM People WHERE FName = 'John'
fonctionnera mieux avec la seconde structure d'index par rapport à la première.
Et SELECT * FROM People WHERE FName = 'John' AND LName = 'Smith'
fonctionnera à l'identique quel que soit l'ordre dans lequel l'index est créé.
Veuillez clarifier votre question, je ne suis pas vraiment sûr de ce que vous demandez réellement ici. – Ross
Moi non plus. Je ne comprends pas ce qu'il essaie de dire. – ppshein
Un index clusterisé et non clusterisé peut être un index de couverture. Un index de couverture signifie que l'index fait référence à plusieurs colonnes. Un index clusterisé implique qu'il s'agit de la clé primaire de la table, mais ce n'est pas forcément le cas. –