Temos um novo servidor que também estamos migrando e queremos ver os benefícios potenciais do hardware. Portanto, a ideia é capturar uma carga de trabalho e reproduzi-la em nossa nova caixa.
Minha pergunta é, no entanto, em relação a ver os benefícios de desempenho. Estarei executando alguns contadores de desempenho, mas, idealmente, queremos ver o quanto as consultas individuais são mais rápidas.
Eu terei essas informações na captura inicial da carga de trabalho, no entanto, quando eu reproduzir isso em meu novo servidor, preciso simultaneamente executar um rastreamento para capturar as novas informações da carga de trabalho também. Com efeito, executando o SQL Profiler duas vezes ao mesmo tempo para reproduzir e capturar?
Sempre que tive que fazer isso, usei os utilitários RML (os links para download dos pacotes x86 e x64 podem ser encontrados nesta página ).
Basicamente, você só precisa configurar um rastreamento do lado do servidor usando um dos modelos incluídos no pacote. O rastreamento capturado pode ser analisado usando ReadTrace (incluído em RML Utilities) e preenche um banco de dados com resultados de análise de consulta. Os resultados são mostrados usando uma ferramenta chamada Reporter, que é apenas relatórios de serviços reempacotados para RML Utilities.
ReadTrace também produz os arquivos intermediários RML que você pode usar para reprodução na nova instância. A ferramenta para replay chama-se Ostress.
Antes de tentar o replay (ou mesmo a captura), leia atentamente o manual para entender como sincronizar a captura com o backup, você precisará garantir que a carga de trabalho seja executada nos mesmos dados, para obter resultados consistentes.
Antes de executar o replay, configure um rastreamento na nova instância usando o mesmo modelo usado para a captura inicial. Quando a reprodução terminar, você poderá analisar a carga de trabalho usando ReadTrace e usar o recurso de comparação no Reporter. Ele mostrará quais consultas melhoraram ou pioraram nas duas capturas, por CPU, decorrido e I/O.
Não é trivial, mas pode ser feito com um pouco de paciência e um pouco de tentativa/erro. Boa sorte!
PS: a nova versão dos utilitários RML também pode analisar uma carga de trabalho capturada usando Extended Events. Na minha experiência, os arquivos são significativamente maiores dessa maneira. Os modelos de rastreio usados por RML e Distributed Replay são diferentes, portanto, não tente usá-los de forma intercambiável. Se bem me lembro, existe uma maneira de alimentar o Replay distribuído com arquivos de eventos estendidos, mas posso estar errado. Na minha opinião, esta é uma opção que você deve investigar apenas se o Ostress não puder acompanhar uma carga de trabalho altamente simultânea.
Experimente o Microsoft Database Experimentation Assistant: https://www.microsoft.com/en-us/download/details.aspx?id=54090 Ele pode fornecer informações de desempenho com base em cada uma das consultas.