Eu tenho 2 procedimentos armazenados, onde o segundo procedimento armazenado é uma melhoria do primeiro.
Estou tentando medir exatamente o quanto isso é uma melhoria.
1 / Medição clock time
não parece ser uma opção, pois recebo diferentes tempos de execução. Pior ainda, às vezes (raramente, mas acontece) o tempo de execução do segundo procedimento armazenado é maior que o tempo de execução do primeiro procedimento (acho que devido à carga de trabalho do servidor naquele momento).
2 / Include client statistics
também fornece resultados diferentes.
3 / DBCC DROPCLEANBUFFERS
, DBCC FREEPROCCACHE
são boas, mas a mesma história ...
4 / SET STATISTICS IO ON
poderia ser uma opção, mas como eu poderia obter uma pontuação geral, pois tenho muitas tabelas envolvidas nos meus procedimentos armazenados?
5 / Include actual execution plan
poderia ser uma opção também. Recebo um estimated subtreecost
de 0,3253 para o primeiro procedimento armazenado e 0,3079 para o segundo. Posso dizer que o segundo procedimento armazenado é 6% mais rápido (= 0,3253 / 0,3079)?
6 / Usando o campo "Lê" no SQL Server Profiler?
Então, como posso dizer que o segundo procedimento armazenado é x% mais rápido que o primeiro, independentemente das condições de execução (a carga de trabalho do servidor, o servidor em que esses procedimentos armazenados são executados etc.)?
Se não for possível, como posso provar que o segundo procedimento armazenado tem um tempo de execução melhor que o primeiro procedimento armazenado?