SQL Server – Como identificar e coletar informações de consultas demoradas utilizando Trace (SQL Server Profiler)

SQL Server – Como identificar e coletar informações de consultas demoradas utilizando Trace (SQL Server Profiler)
5 (100%) 2 votoss

Olá pessoal!
Como vocês estão ?

Neste post eu vou demonstrar a vocês como identificar e coletar informações de consultas demoradas utilizando Trace (SQL Server Profiler). Isso é muito útil para lhe auxiliar em análises de performance tuning, facilitando a identificação de rotinas que estejam com tempo de resposta alto, tanto execução de procedures quanto queries ad-hoc.

No dia a dia, utilizo muito esse recurso para me ajudar a identificar timeouts em aplicações (Duração da query = tempo máximo de timeout configurado na app) e possíveis consultas candidatas a realizar um trabalho de performance tuning.

O fluxo dessa rotina funciona da seguinte forma:

  • Verifica se o trace já está ativo.
  • Caso o trace esteja ativo, desativa o trace e fecha o arquivo
  • Cria a tabela de histórico das consultas (caso não exista).
  • Lê os dados do arquivo de trace e insere na tabela de histórico
  • Ativa o recurso xp_cmdshell dinamicamente (caso não esteja ativado)
  • Apaga o arquivo de trace
  • Desativa o recurso xp_cmdshell dinamicamente (caso não estava ativado antes)
  • Cria novamente o trace
  • Ativa o trace recém criado

A ideia é que seja criado um Job que é executado a cada X minutos que execute todo esse processo, limpando o arquivo de trace e inserindo os dados coletados na tabela de histórico para que os DBA’s possam consultar os dados lidos do arquivo de trace.

Código-fonte da rotina de coleta

Resultado:

Na minha rotina, eu configurei para coletar qualquer query que execute por mais de 7 segundos. Fique à vontade para alterar e aplicar filtros conforme sua necessidade.

É isso aí, pessoal!
Um abraço e até a próxima.

SQL, sql server, sql server 2008, sql server 2008 R2, Oracle, Oracle Database, Oracle 11g, Oracle 10g, Oracle 12c, MySQL, Firebird, Consultoria, Consultor, Programador, Programação. Desenvolvedor, Analista de Sistemas, DBA, Criação de website, Criação de Sistema Web, Vitória, Vila Velha, Guarapari, Espírito Santo, ES, Consultoria SQL em VItória, Treinamento, Curso, Prestação de serviço, prestar serviço, freelancer, freela, banco de dados, consultoria em banco de dados, consultor de banco de dados

Deixe uma resposta