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 timene 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 statisticsfournit également des résultats différents.
3 / DBCC DROPCLEANBUFFERS, DBCC FREEPROCCACHEc'est bien, mais la même histoire ...
4 / SET STATISTICS IO ONpourrait ê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 planpourrait être une option aussi. estimated subtreecostJ'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?
