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

udf vs performances sql directes

  • 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.