Bruno Perroni
DBA SQL Server com mais de 6 anos de experiência!

Profile

Fala pessoal, Blz?

Nesse artigo eu vou mostrar como utilizar o Profile para pegar erros, procedures e várias outras informações, referentes ao que está acontecendo no servidor SQL.

Mesmo sabendo que o profile está sendo descontinuado eu particularmente ainda uso muito e espero que a Microsoft não remova nas futuras versões.

Para quem não conhece o Profile está localizado no menu Tools do SSMS.

Ao clicar em SQL Server Profiler, irá abrir a tela para se conectar ao servidor que será investigado, semelhante ao se conectar no SSMS.

Ao conectar no profile será aberta a tela de propriedades para a configuração do trace. Na aba General, é possível dar um nome para o Trace, escolher um template, definir um local para a gravação do Output gerado, afim de analisar posteriormente, também podemos gravar o resultado em uma tabela, bem como programar um horário para o trace parar.

Uma parte bem legal, são os templates, existem alguns pré-configurados, conforme abaixo:

Na aba Events Selections é possível visualizar os eventos, que serão capturados ao iniciar o trace, bem como quais colunas serão exibidas. O template padrão [Standard (default)] atende na maioria dos casos.

Pelo template padrão, podemos monitorar se um determinado usuário está fazendo login no servidor, se uma procedure está sendo chamada por uma determinada aplicação ou se está havendo conexão por parte da aplicação com o servidor.

Se selecionarmos o template Blank, podemos customizar quais eventos serão monitorados e como podemos notar existem diversos eventos agrupados por tipo.

Como exemplo vamos criar um trace para detectar exceptions geradas pelo SQL.

Deixe a opção Exception selecionada.

Outro ponto importantíssimo, é filtrar o que será monitorado, pois se não especificarmos nada, irá aparecer uma quantidade absurda de dados, tornando a analise inviável.

Para isso clique no botão Column Filters…

Será aberta uma outra janela com campos para especificarmos alguns critérios para o Trace, como o Banco de Dados, Usuário, Hostname e etc…

Quanto mais filtros você colocar melhor será o seu resultado.

Então até o momento nós temos um Trace, configurado para pegar exceptions, que estão ocorrendo no banco de dados AdventureWorks2014.

Vamos testar e verificar se o Trace está capturando as exceptions ocorridas.

Clique em Run para iniciar e deixar o trace rodando.

No SSMS abra uma conexão com o banco de dados AdventureWorks2014 e tente fazer um select em uma tabela inexistente.

 

Bingo! O trace já detectou uma exception, como podemos ver, Invalid object name ‘sales.person’.

O trace identificou que no banco de dados AdventureWorks2014, não existe nenhuma tabela com esse nome e com isso a exception foi gerada.

E é isso, espero que tenham gostado pessoal.

Obs: A execução de um trace onera bastante o servidor SQL, por isso utilize o máximo de filtros possíveis, por curtos períodos e evite colocar para rodar em horários de pico