Pergunta

Em Talvez normalizar não seja normal Jeff Atwood diz: "Você está medindo automaticamente todas as consultas que fluem através do seu software, certo?" Eu não sou, mas gostaria de.

Algumas funcionalidades do aplicativo em questão:

Foi útil?

Solução

Além da menção de Brad ao SQL Profiler, se você quiser fazer isso em código, então todas as suas chamadas de banco de dados precisam ser canalizadas através de uma biblioteca comum.Você insere o código de tempo lá e pronto, você sabe quanto tempo leva cada consulta em seu sistema.

Um único ponto de entrada no banco de dados é um recurso bastante padrão de qualquer ORM ou camada de banco de dados - ou pelo menos tem sido em qualquer projeto em que trabalhei até agora!

Outras dicas

Perfilador SQL é a ferramenta que uso para monitorar o tráfego que flui para meu SQL Server.Ele permite que você reúna dados detalhados sobre o seu SQL Server.O SQL Profiler foi distribuído com o SQL Server pelo menos desde o SQL Server 2000 (mas provavelmente antes disso também).

Altamente recomendado.

Dê uma olhada neste capítulo que Jeff Atwood e eu escrevemos sobre otimizações de desempenho para sites.Cobrimos muitas coisas, mas há muitas coisas sobre rastreamento e otimização de banco de dados:Acelere seu site:8 dicas de desempenho do ASP.NET

O Deixando cair coisas projeto no CodePlex possui uma classe para cronometrar blocos de código.A classe é chamada TimedLog.Ele implementa IDisposable.Você envolve o bloco de código que deseja cronometrar em uma instrução using.

Se você usar o Rails, ele registrará automaticamente todas as consultas SQL e o tempo que elas levaram para serem executadas em seu arquivo de log de desenvolvimento.

Acho isso muito útil porque se você vir um que está demorando um pouco, basta copiá-lo e colá-lo diretamente da tela/arquivo de log e colocar 'explicar' na frente dele no mysql.

Você não precisa vasculhar seu código e reconstruir o que está acontecendo.

Escusado será dizer que isso não acontece na produção, pois você ficaria sem espaço em disco em cerca de uma hora.

Se você definir uma fábrica que crie SqlCommands para você e sempre a chame quando precisar de um novo comando, poderá retornar um RealProxy para um SqlCommand.

Este proxy pode então medir quanto tempo ExecuteReader/ExecueScalar etc.use um StopWatch e registre-o em algum lugar.A vantagem de usar esse tipo de método em relação ao Sql Server Profiler é que você pode obter rastreamentos completos de pilha para cada parte do SQL executada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top