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?
fuente
Cuando haya recopilado tiempos de ejecución durante un par de días para sus dos procedimientos almacenados, le recomendaré que use esta página de inicio
http://www.evanmiller.org/ab-testing/t-test.html
para ver si en realidad son diferentes.
La diferencia del 6% no suena tanto cuando se trata de mejoras de los procedimientos almacenados. He llegado a esperar dos órdenes de magnitud de mi colega, y pretendo estar decepcionado si solo logra una orden de magnitud ...
No tiene que usar la página de inicio de EvanMiller para demostrar que su solución funciona más rápido.
También instalaría SQLSentrys (editar :) Plan Explorer desde http://www.sqlsentry.com/ ya que esta es una herramienta mucho mejor para comparar planes de ejecución.
fuente