Pourquoi est-ce que si j'exécute ma requête en tant que procédure paramétrée, elle s'exécute 10 fois plus vite que si je l'exécute directement en tant que requête paramétrée?Pourquoi la requête est-elle lente mais la procédure est-elle rapide sur SQL Server?
J'utilise la même requête exacte dans les deux cas, et il n'a pas d'importance si je vous appelle de Management Studio ou un SqlCommand de code. EDIT: Le plan d'exécution semble différent.
Alors pourquoi? Je l'appelle avec EXACTEMENT le même ensemble de paramètres.
EDIT: Après plus de tests, il semble que le ralentissement 10x ne se produit que lors de l'exécution de la requête SQL paramétrées de gestion Studio.
C'est un très bon point, j'ai été blessé par cela avant. –
J'ai aussi récemment vu ce comportement. Peut causer des problèmes de performance majeurs. – Kibbee
@Kibbee: Je pense que ce sont vos commentaires dans une autre question SO il y a un mois ou deux qui m'ont poussé à enquêter sur le comportement. Heureusement, je n'utilise jamais AddWithValue et je spécifie toujours le type de paramètre explicitement, donc ce n'était pas un problème dans mon ancien code. –