J'ai 2 procédures stockées, où la deuxième procédure stockée est une amélioration de la première.
J'essaie de mesurer exactement combien il s'agit d'une amélioration.
1 / La mesure clock time
ne semble pas être une option car j'ai des temps d'exécution différents. Pire encore, parfois (rarement, mais cela arrive), le temps d'exécution de la deuxième procédure stockée est plus long que le temps d'exécution de la première procédure (je suppose en raison de la charge de travail du serveur à ce moment).
2 / Include client statistics
fournit également des résultats différents.
3 / DBCC DROPCLEANBUFFERS
, DBCC FREEPROCCACHE
c'est bien, mais la même histoire ...
4 / SET STATISTICS IO ON
pourrait être une option, mais comment puis-je obtenir un score global car j'ai de nombreuses tables impliquées dans mes procédures stockées?
5 / Include actual execution plan
pourrait être une option aussi. estimated subtreecost
J'obtiens un de 0,3253 pour la première procédure stockée et de 0,3079 pour la seconde. Puis-je dire que la deuxième procédure stockée est 6% plus rapide (= 0,3253 / 0,3079)?
6 / Utilisation du champ "Lectures" de SQL Server Profiler?
Alors, comment puis-je dire que la deuxième procédure stockée est x% plus rapide que la première procédure, quelles que soient les conditions d'exécution (la charge de travail du serveur, le serveur sur lequel ces procédures stockées sont exécutées, etc.)?
Si ce n'est pas possible, comment puis-je prouver que la deuxième procédure stockée a un meilleur temps d'exécution que la première procédure stockée?