2017-09-18 3 views
0

J'ai une requête sur les index sur lesquels je n'ai pas trouvé de confirmation (probablement en raison d'un mauvais libellé). C. Si je devais créer un index sur la colonne A, qui comprend la colonne B, je dois comprendre que cela est idéal pour une requête qui filtre/groupes/trie sur A et sélectionne B.Utilisation de INCLUDE dans les index

Cependant, pour les autres colonnes (exemple: sélectionnez la colonne C), cela fonctionne-t-il comme un index normal sur la colonne A sans les inclusions?

J'apprécierais toute aide à ce sujet.

Merci.

Répondre

1

Votre question indique la différence entre les requêtes couvertes et non couvertes. Il y a quelques problèmes à ce problème - je conseillerais de lire l'article this. Le plan d'exécution de la requête est choisi après avoir pris en compte quelques conditions, il n'y a donc pas de réponse immédiate à votre question.

+0

Article très intéressant. Mais je ne sais toujours pas ce que cela signifie pour cette situation. Si vous ne lisez pas les clés de recherche de l'index d'inclusion, les performances de lecture sont-elles égales à celles de l'index sans inclure? – stubs

+1

Vous voulez dire si les colonnes incluses ralentissent la recherche d'index même si vous ne les utilisez pas? Tous les index sont organisés en pages. Par conséquent, si vous incluez beaucoup de colonnes dans un index non clusterisé, vous pouvez insérer moins de clés dans une page. Cela signifie que vous devez lire plus de pages, ce qui a un impact négatif sur les performances (bien sûr, uniquement si sql décide d'utiliser l'index). – PacoDePaco