SQL Profiler – Trace (monitoramento)

Olá prezados leitores!

Nesse post abordaremos um recurso muito útil e presente no dia a dia de um DBA.

O recurso chama-se “SQL Server Profiler“, que é uma Feature disponível na gama de ferramentas do SQL Server, com objetivo de monitorar sua instância e o que executa nela, assim como dados das sessões, como for da vontade de quem o utiliza.

É uma interface avançada para criar e gerenciar rastreamentos, analisar e reproduzir resultados de rastreamento. Os eventos são salvos em um arquivo ou tabela de rastreamento que, posteriormente, pode ser analisado ou usado para reproduzir uma série específica de etapas na tentativa de diagnosticar um problema.

 

Termos:

SQL Server Profiler: Ferramenta utilizada para realizar o monitoramento do Banco de Dados, através de Trace.

Trace: É o monitoramento / rastreamento efetuado através do SQL Server Profiler.

Evento: É uma ação registrada dentro do SSMS. Exemplos: Execute SP, Error, Login Connection, Statement Completed, Lock, Deadlock, etc…

 

 

Vamos ao teste prático para melhor entender o recurso.

Abrir o “SQL Server Profiler”, no contexto do menu do SQL Server, dentro do “Menu Iniciar“.

1

 

Clicar em “New Trace” para iniciar uma nova sessão de Trace.

2

 

Conectar na instância que deseja realizar o monitoramento.

3

 

Selecionar o nome do Trace.

Selecionar se deseja salvar em Tabela do Banco de Dados ou em arquivo.

Selecionar o tamanho máximo do arquivo.

Selecionar (opcional) a data de fim do Trace.

4

 

Na aba “Events Selection” selecionar quais eventos deseja capturar, e quais dados desses eventos.

Um EVENTO pode ser um erro, um lock, um script, uma execução de Stored Procedure, etc.

Um DADO DE EVENTO (column) é uma informação desse evento, como o usuário que executou a Stored Procedure, o Application que executou determinado script, o SPID que causou um lock, etc…

5

 

Como exemplo, vamos monitorar as mensagens de erro geradas na instância.

Para filtrar mais o Trace, para não trazer muitos dados desnecessários, vamos filtrar os dados para monitorar somente um Banco de Dados. Clicar no botão “Column Filters…”.

Com os Eventos corretos selecionados, e com os filtros aplicados, traremos apenas o necessário para atingir o objetivo do Trace, sem dados desnecessários, que tornam a análise muito complicada.

6

 

Ir na opção DatabaseName, e adicionar o nome do Banco de Dados no campo “Like”.

Você também pode filtrar por diversos outras informações: Como DatabaseID, Hostname (Host que manda a execução para o SQL Server), ApplicationName (aplicação que conecta ao SQL Server), LoginName (usuário que conecta no SQL Server). Também pode-se filtrar por contadores, utilizando outros comparadores, como por exemplo, filtrar execuções com mais de 1 segundos (contador Duration com “Greater than or equal”, valor em microsegundos (1 segundo = 1000000 microsegundos)).

78

 

Também vamos selecionar a opção abaixo (SQL: SmtpCompleted) para monitorar os scripts T-SQL que completaram a chamada no Banco de Dados.

Após isso, iniciar o Trace, clicando no botão verde de Play (Start Selected Trace).

9

 

Para os testes, vamos criar uma tabela e inserir alguns dados.

10

 

Ao tentar inserir novos dados, com o campo ID idêntico ao INSERT feito na última imagem, gera erro de violação de Primary Key.

11

 

Ao olharmos o Trace que deixamos executando, pode-se ver que a mensagem de erro foi capturada.

12

 

No Evento “SQL:StmtCompleted” podemos ver o script que foi executado (o script abaixo foi o que tentamos executar anteriormente e estourou erro).

13

 

Mais um teste, vamos tentar inserir novos dados, que não violem a restrição da PK, porém deverá ocorrer erro de conversão no campo referente à data, que deveria seguir o formato de DATETIME, porém estamos colocando uma cadeia de caracteres.

14

 

O erro é capturado tal qual ocorreu no SSMS.

Se olhar no evento de “SQL:StmtCompleted”, estará gravada a query acima, que tentamos executar.

15

 

Abaixo a barra com os principais recursos do Profiler.

16

 

  1. New Trace: Iniciar uma nova sessão de Trace, em outra instância, outro BD, outros parâmetros.
  2. New Template: Criar um template com configurações personalizadas para utilizar em próximos monitoramentos.
  3. Open Trace File: Abrir dados de arquivo Trace salvo anteriormente.
  4. Open Trace Table: Abrir dados de tabela de Trace salvo anteriormente.
  5. Properties: Abre a tela inicial (Trace Properties, na 4ª imagem) com os parâmetros do monitoramento e filtros, local para salvar os dados, etc.
  6. Find String: Busca uma String em qualquer campo (Textdata, loginname, Application, etc…)
  7. Clear Trace Window: Limpa a tela com os dados do Trace.
  8. Start Selected Trace: Inicia o Trace.
  9. Pause Selected Trace: Pausa o Trace.
  10. Stop Selected Trace: Para o Trace.
  11. Auto Scroll Window: Não rola automaticamente a tela ao surgir novos eventos. Útil para quando está analisando um trace enquanto o mesmo ainda está monitorando.
  12. SQL Server Management Studio: Abre o SSMS.
  13. Performance Monitor: Abre o Performance Monitor, que possibilita você acompanhar os dados de performance, e cruzar com os dados do monitoramento. Muito útil quando se quer identificar o que está causando gargalo de performance no servidor.

Exemplo: Se está com alto volume de I/O e o processo causador é o SQL Server, pode ativar um Trace na instância do SQL Server, e ao mesmo tempo, cruzar os horários em que o Performance Monitor acusou o alto I/O com o que estava executando na janela em que o I/O estava alto.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s