Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

comment vérifier que la requête utilise l'index

C'est en fait plus difficile qu'il n'y paraît - un SGBD moderne typique (et MS SQL Server ne fait pas exception) effectuera parfois une analyse complète de la table même si l'index est disponible, simplement parce que cela peut être plus rapide sur de petites quantités de données.

Exemple :

De plus, la décision prise par le SGBD peut être influencée par la fraîcheur/précision des statistiques sont.

Le test le plus fiable pour savoir si l'index est utilisé consiste simplement à remplir votre base de données avec des quantités représentatives de données et puis regardez le plan d'exécution . Et n'oubliez pas de chronométrer l'exécution réelle de la requête, pendant que vous y êtes !

Un exemple simplifié :si toute la table tient dans une seule page de base de données, il est plus rapide de simplement charger cette page et de la parcourir de manière séquentielle, que d'attendre les E/S supplémentaires pour la page contenant l'index.