Question

Quels sont les scénarios (dans SQL Server) dans lequel une analyse complète de la table est mieux que le balayage d'index?

Était-ce utile?

La solution 2

Lorsque la sélectivité des dossiers est très élevé scan de table est toujours mieux que de passer par balayage d'index.

http://www.techipost.com/single-index -versus-full-table scan /

Modifier par GBN:

Exemple, l'optimisateur peut décider qu'il est plus facile à analyser la table / index cluster si elle nécessiterait beaucoup de recherches clés (par exemple index non ordonnés en clusters à indexs clustérisés données non-clé).

Ou vous n'avez pas beaucoup de valeurs distinctes dans les colonnes indexées

Autres conseils

Lorsque la

  • table est assez petit il n'y a pas de différence pratique
  • statistiquement, vous rentrerais la plupart des lignes de toute façon

Le 2ème cas a besoin de qualification

  • Une analyse d'index remplacera un indice si un index cherche couvre
  • Un index recherche ou du balayage avec de nombreuses lignes qui nécessite des recherches clés / signet seront coûteux et une analyse de table pourrait être mieux

Enfin

  • Une analyse d'index et une analyse de table sont à peu près les mêmes pour les index clusterisés

Si la table

  • est très petite
  • le coût de faire un scan d'index, puis un certain nombre de recherches de signets dans la table de base est plus cher qu'un balayage table complète

Mieux en quoi?

L'optimiseur peut choisir un scan de table si un index ne couvre pas, car une analyse d'index devrait encore être augmentée avec une recherche de signet.

Dans ces cas, une table mal indexée est pas mieux que d'une table non indexée.

http://www.sqlservercentral.com/articles/Performance+Tuning / bookmarklookups / 1899 /

Licencié sous: CC-BY-SA avec attribution
Non affilié à dba.stackexchange
scroll top