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.
Pingback: Capturando consultas executadas no SQL Server (Trace) com .NET via SMO « SQL From Hell.com
Paulo, ótima dica…esse recurso é exclusivo do sql 2008?
Ele existe desde o SQL Sever 2000, mas não mudou muito do SQL Server 2005 até hoje.
Quando tento conectar exibe uma tela com o seguinte erro……Classe não registrada(pfutil)
o que pode estar errado?
Bom dia, é possível ser algum problema na instalação do SQL Server Profiler, tente reinstalá-lo.
O instalador do SQL Server Profiler vem junto com o instalador do SQL 2008R2 ?
Sim, mas se for necessário é possível instalar só ele pelo instalador.
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