Tengo 2 procedimientos almacenados, donde el segundo procedimiento almacenado es una mejora del primero.
Estoy tratando de medir exactamente cuánto es una mejora.
1 / La medición clock time
no parece ser una opción, ya que obtengo diferentes tiempos de ejecución. Peor aún, a veces (rara vez, pero sucede) el tiempo de ejecución del segundo procedimiento almacenado es mayor que el tiempo de ejecución del primer procedimiento (supongo que debido a la carga de trabajo del servidor en ese momento).
2 / Include client statistics
también proporciona resultados diferentes.
3 / DBCC DROPCLEANBUFFERS
, DBCC FREEPROCCACHE
son buenos, pero la misma historia ...
4 / SET STATISTICS IO ON
podría ser una opción, pero ¿cómo podría obtener una puntuación general ya que tengo muchas tablas involucradas en mis procedimientos almacenados?
5 / Include actual execution plan
podría ser una opción también. Obtengo un estimated subtreecost
0.3253 para el primer procedimiento almacenado y 0.3079 para el segundo. ¿Puedo decir que el segundo procedimiento almacenado es un 6% más rápido (= 0.3253 / 0.3079)?
6 / ¿Usando el campo "Lecturas" de SQL Server Profiler?
Entonces, ¿cómo puedo decir que el segundo procedimiento almacenado es x% más rápido que el primer procedimiento, sin importar las condiciones de ejecución (la carga de trabajo del servidor, el servidor donde se ejecutan estos procedimientos almacenados, etc.)?
Si no es posible, ¿cómo puedo probar que el segundo procedimiento almacenado tiene un mejor tiempo de ejecución que el primer procedimiento almacenado?