Identificando consultas demoradas com o SQL Server Profiler

Antes de publicar os artigos sobre eventos com SMO (Trace e Events) que serão os temas a serem trabalhados nas próximas semanas, identifiquei a necessidade de mostrar o funcionamento do SQL Server Profiler, antes que alguém tente criar um SQL Server Profiler com o SMO.

O SQL Server Profiler é uma ferramenta normalmente utilizada por DBAs para identificar consultas lentas, diagnosticar problemas com deadlock e desempenho, e gerar cargas de consultas com o Database Engine Tuning Advisor.

Caso você nunca tenha falado de SQL Server Profiler, fique tranquilo, só pense que ele permite capturar eventos do SQL Server, como no caso, execução de consultas e procedures.

Para um exemplo bem simples, vamos executar o “Performance Tools\SQL Server Profiler”:

Ir em “File/New Trace…”:

Conectar a um servidor SQL Server:

E vamos nos deparar com a seguinte tela:

Especifique nesta tela um nome para seu Trace e o template a ser utilizado, no meu caso, o “TSQL_Duration”:

E você também pode definir um arquivo ou tabela para salvar o trace, exemplo:

Na aba “Events Selecion”, será possível definir filtros dos eventos a serem monitorados, assim como adicionar/remover eventos e especificar os dados a serem capturados de cada evento:

Prosseguindo com o botão “Run”, será possível ver em tempo real o que esta sendo executado no SQL Server e o tempo de execução de cada evento:

Ferramenta interessante, não? Então após se divertir com ela e conhecer um pouco mais de cada template, procure aprender como utilizar filtros e ordenação, criar seus próprios templates, assim como identificar recursos desta ferramenta para diagnosticar gargalos de desempenho e consultas lentas, e como trabalhar com ele junto com o Perfmon e o Database Engine Tuning Advisor.

Após utilizar o SQL Server Profiler, não se esqueça de parar o Trace, para não o deixar rodando sem necessidade no seu SQL Server.

10 pensamentos sobre “Identificando consultas demoradas com o SQL Server Profiler

  1. Pingback: Capturando consultas executadas no SQL Server (Trace) com .NET via SMO « SQL From Hell.com

  2. Quando tento conectar exibe uma tela com o seguinte erro……Classe não registrada(pfutil)
    o que pode estar errado?

      • Paulo, ótimo post, muito bom.
        Vê se vc pod eme ajudar, como eu faço para diagnosticar gargalos de desempenho e consultas lentas, e como trabalhar com ele junto com o Perfmon e o Database Engine Tuning Advisor?

        Obrigado!

        Att.
        Bruno

      • Olá Bruno, vou elaborar um artigo sobre isso assim que sobrar um tempo.

        A forma mais rápida de achar as consultas demoradas é usar o SQL Server Profiler, com o template TSQL_Duration, e filtrando para pegar as consultas que demoram mais de ‘X’ ms (5000ms já dá uma boa margem).

        Normalmente começo as análises de performance pelo Perfmon, vendo como está o disco, processador e memória (buffer do SQL Server), pois a partir destes itens dá para saber se o hardware não está em seu limite, ou se é algo no SQL Server que tem causado esta demora.

      • Olá Paulo, obrigado pela resposta, vou tentar seguir suas dicas.
        Aguardo pelo seu artigo.
        Obrigado!

        Abs

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.