- Si vous souhaitez vous inscrire sur
Purchases.CustomerID
vous devriez mettre un index dessus. - Si vous effectuez souvent des requêtes sur des plages de valeurs, vous devez également ajouter un index à celles-ci.
En l'état, vous demandez au serveur SQL de choisir entre deux mauvais plans.
SQL Server peut deviner approximativement combien d'achats seront couverts par le > 1000
requête, et choisira un plan en fonction de cela.
Cependant, il ne peut pas deviner combien seront couverts par la requête UDF, il peut donc choisir un plan différent. Parce qu'il se déroule par ignorance, il peut être meilleur ou pire que l'autre plan en fonction de la qualité de sa supposition.
Vous pouvez voir les plans générés et il vous indiquera le nombre estimé de lignes dans chaque plan, ainsi que le nombre réel. Ces chiffres estimés expliquent le choix du plan dans chaque cas.