Je suis d'accord avec Cade Roux .
Cet article devrait vous mettre sur la bonne voie:
Une chose à noter, les index clusterisés devraient avoir une clé unique (une colonne d'identité que je recommanderais) comme première colonne. Fondamentalement, cela aide votre insertion de données à la fin de l'index et ne provoque pas beaucoup d'E / S de disque et de fractionnements de page.
Deuxièmement, si vous créez d'autres index sur vos données et qu'ils sont construits intelligemment, ils seront réutilisés.
par exemple, imaginez que vous recherchez un tableau sur trois colonnes
état, comté, zip.
- vous recherchez parfois par état uniquement.
- vous recherchez parfois par état et comté.
- vous effectuez fréquemment des recherches par état, comté, code postal.
Puis un index avec état, comté, zip. sera utilisé dans ces trois recherches.
Si vous recherchez beaucoup par zip seul, alors l'index ci-dessus ne sera pas utilisé (par SQL Server de toute façon) car zip est la troisième partie de cet index et l'optimiseur de requête ne verra pas cet index comme utile.
Vous pouvez ensuite créer un index sur Zip seul qui serait utilisé dans ce cas.
Soit dit en passant, nous pouvons tirer parti du fait qu'avec l'indexation à plusieurs colonnes, la première colonne d'index est toujours utilisable pour la recherche et lorsque vous recherchez uniquement par «état», elle est efficace mais pas aussi efficace que l'index à colonne unique sur «l'état» "
Je suppose que la réponse que vous recherchez est que cela dépend de vos clauses where de vos requêtes fréquemment utilisées et également de vos regroupements.
L'article vous aidera beaucoup. :-)