Quand une table analyse complète mieux que scan d'index?
-
16-10-2019 - |
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?
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 /