Bonjour,
Je surveille actuellement une instance SQL SERVER 2000 EE SP4 avec le profiler. Je remarque qu'une procédure stockée exécutée est assez gourmande en ressources (nb de reads > 100 000) !!!. Cette procédure reçoit un paramètre de type tinyint en entrée, pour pouvoir l'optimiser la requête qu'elle contient j'ai exécute la requête suivante :
Si je regarde les plans d'exécution j'observe que la requête avec le SELECT et l'exécution de la procédure stockée donne des plans d'exécutions différents
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 DECLARE @input TINYINT SET @INPUT = ... SELECT (traitement prenant en compte @INPUT identique à celui de la procédure) GO exec procedure_gourmande @INPUT= ...
et si je regarde le profiler :
SELECT => Nb read = 10 000
Procédure stockée => NB read > 100 000
Pouvez-vous m'aider ? Je ne comprends pas pourquoi la procédure stockée et le SELECT on des plans d'exécution différents et pourquoi le SELECT est beaucoup moins gourmand (en term de read).
Merci d'avance.
Cdlt.
Partager