Estou trabalhando em um projeto de teste de desempenho de código.
Deixe-me primeiro descrever o ambiente: MsSql Server, Ria Service
O teste de automação executa um grande conjunto de casos de teste à meia-noite, onde há tráfego de rede mínimo ou uso de CPU no servidor.
Os testes irão chamar o Serviço Ria e o Serviço Ria fará chamadas à base de dados para fazer a mesma operação repetidamente por vezes.
A métrica de desempenho é medida usando Sql Profiling Trace, então pegamos todas as chamadas sql feitas dentro de cada teste e podemos associar cada uma delas.
Percebo que, em algum momento, o mesmo SQL chama em um teste e seu desempenho aumenta repentinamente.
ou seja, uma operação INSERT de um teste, geralmente é em torno de 0,807 ms e salta para 200ms.
Eu me pergunto se isso é um comportamento normal? Diga que não há impactos ambientais para o teste...
Pode ter sido bloqueado por outro processo, pode ter forçado um crescimento automático, outra coisa pode ter chamado a atenção da CPU, os dados podem ter mudado afetando a cardinalidade, o plano pode ter sido liberado, quem sabe?
Basicamente, sim , a mesma consulta pode se comportar de maneira diferente em momentos diferentes devido a diversos fatores ambientais, tanto internos quanto externos ao SQL Server.