SQLdiag - Parte 2 - Configurando o SQLdiag (Performance Monitor).

Olá pessoal, tudo certo? Dando continuidade à série de posts sobre o SQLdiag hoje irei começar a explicar como configurá-lo, como fazer o utilitário coletar mais informações importantes sobre o ambiente em que está instalado seu SQL Server.

 Uma limitação do SQLdiag é a falta de um utilitário que permita configurar a coleta de acordo com necessidades específicas. A documentação do SQL Server demonstra como configurar o SQLdiag usando XML, mas não mostra como customizar a coleta usando outros recursos, estas limitações foram em partes cobertas pelo utilitário chamado Sqldiag Manager (formalmente suportado para o SQL Server 2005 / 2008 / 2008 R2), conforme os links abaixo: 



 No final do post anterior (http://sqlmagu.blogspot.com.br/2014/01/sqldiag-parte-1-conhecendo-o-sqldiag.html), comentei que logo após rodar o SQLdiag pela primeira vez, surgem alguns arquivos novos na pasta onde o utilitário dele se encontra, reparem que um destes arquivos se chama SQLDiag.XML, conforme imagem abaixo:


 Com o SQLdiag parado, copiem este arquivo para algum outro diretório, mudem o nome dele para SQLDiag_custom.xml e depois abram ele no Notepad, reparem na linha abaixo: 

<PerfmonCollector enabled="false" pollinginterval="5" maxfilesize="256">

 Vou quebrar esta linha em três partes e dar uma breve descrição sobre cada uma delas: 

<PerfmonCollector enabled="false" = Acredito que para a maioria, Perfmon é uma palavra comum, que remete ao Performance Monitor do Windows certo? Logo na sequência vemos enabled=”false”, opa! Podemos concluir que ele está desabilitado! 

pollinginterval="5" = Se estamos falando do Performance Monitor, sabemos que ele possui um intervalo de coleta dos dados que pode ser configurado, logo, notem que este intervalo está definido em 5 segundos! 

maxfilesize="256"> = Sabemos que podemos configurar o Performance Monitor para ficar rodando e gerando arquivos com tamanhos que nós definimos, interessante, isto quer dizer que neste caso os arquivos estão definidos em 256 MB!

 Agora que entendemos esta linha, repare que depois dela temos diversos contadores do Perfmon listados sequencialmente. Vamos fazer algumas modificações, alterem a linha do Perfmon para que fique da seguinte forma:

<PerfmonCollector enabled="true" pollinginterval="5" maxfilesize="1"> 

 Salvem as alterações e copiem este arquivo para a pasta do utilitário do SQLdiag, agora rodem o serviço da seguinte forma: sqldiag /I SQLDiag_custom.XML, como na imagem abaixo:

 
 Quando aparecer a mensagem dizendo que já existem arquivos na pasta SQLDIAG, apenas concordem em sobrescrever os mesmos com a tecla “Y” e depois pressionem Enter.

 
 Com o SQLdiag no ar, reparem o que surgiu dentro da pasta SQLDIAG:

 
 Isso mesmo! O SQLDiag agora também está coletando dados de performance do Windows, o qual está gerando arquivos BLG com o tamanho de 1 MB coletando dados a cada 5 segundos conforme configuramos no arquivo SQLDIAG_custom.xml

 Certo, digamos que o Performance Monitor está coletando dados que para nós não são interessantes, vamos supor que queremos apenas saber informações sobre a utilização dos processadores. Sem problemas, parem o SQLdiag, abram novamente o arquivo SQLDIAG_custom.xml, mantenham apenas o contador Processor(*) e apaguem todos demais tomando cuidado para manter as linhas que destaquei em vermelho:
 
<PerfmonCollector enabled="true" pollinginterval="5" maxfilesize="1">
<PerfmonCounters>
<PerfmonObject name="\Processor(*)" enabled="true">
<PerfmonCounter name="\*" enabled="true" />
<PerfmonCounter name="\% Processor Time" enabled="true" />
<PerfmonCounter name="\% User Time" enabled="true" />
<PerfmonCounter name="\% Privileged Time" enabled="true" />
<PerfmonCounter name="\Interrupts/sec" enabled="true" />
<PerfmonCounter name="\% DPC Time" enabled="true" />
<PerfmonCounter name="\% Interrupt Time" enabled="true" />
<PerfmonCounter name="\DPCs Queued/sec" enabled="true" />
<PerfmonCounter name="\DPC Rate" enabled="true" />
<PerfmonCounter name="\% Idle Time" enabled="true" />
<PerfmonCounter name="\% C1 Time" enabled="true" />
<PerfmonCounter name="\% C2 Time" enabled="true" />
<PerfmonCounter name="\% C3 Time" enabled="true" />
<PerfmonCounter name="\C1 Transitions/sec" enabled="true" />
<PerfmonCounter name="\C2 Transitions/sec" enabled="true" />
<PerfmonCounter name="\C3 Transitions/sec" enabled="true" />
</PerfmonObject>
</PerfmonCounters>
</PerfmonCollector>
</MachineCollectors>

 Salvem as alterações e rodem novamente o SQLdiag apontando para o arquivo XML: sqldiag /I SQLDiag_custom.xml.

 Deixem o SQLdiag rodar por alguns minutos depois pare o utilitário. Peguem um dos arquivos BLG’s gerados e abram ele no Performance Monitor, seguindo os passos abaixo:

1. Cliquem em Start / Run, digitem Perfmon e pressionem Enter.
2. Com o Perfmon aberto, cliquem na parte em branco com o botão direito do mouse e selecione Properties:


3. Na aba Source, selecionem Log Files:, depois cliquem em Add.


4. Selecionem o arquivo BLG e cliquem em Open.


5. Agora cliquem em OK.


6. Novamente cliquem com o direito na parte em branco e depois selecionem Add Counters.


7. Reparem que o BLG contém apenas contadores referentes à utilização dos processadores!

 
 Notem que agora já conseguimos rodar nosso SQLdiag coletando dados do Performance Monitor, usando apenas os contadores que julgarmos úteis. 

 É isso pessoal! Espero que estejam gostando da série até aqui, no próximo post irei continuar falando sobre como configurar o SQLdiag para coletar outros dados! Não percam! Um abraço!

SQLdiag - Parte 1 - Conhecendo o SQLdiag...


  Fala galera, tranquilo? Espero que sim! Vou começar uma série de posts sobre como monitorar o SQL Server através do SQLDiag, vocês já ouviram falar sobre ele?

 O SQLdiag embarcado com o SQL Server 7.0 e o SQL Server 2000 era capaz de obter informações de configuração, histórico de execução de queries e alguns logs, conforme link abaixo:


 O PSSDIAG surgiu internamente no Suporte Premier da Microsoft como um utilitário para coleta de dados de instâncias do SQL Server 7.0 / 2000. Mais tarde esta ferramenta foi disponibilizada publicamente para estas versões do SQL Server, conforme link abaixo: 


 Com o SQL Server 2005 e versões posteriores, o SQLdiag incorporou funcionalidades do PSSDIAG e se tornou mais robusto, conforme link abaixo:


 De acordo com o Books Online, hoje o SQLDiag é capaz de coletar os seguintes dados:

  • Logs de desempenho do Windows
  • Logs de evento do Windows
  • SQL Server Profiler rastreamentos
  • Bloqueio de informações do SQL Server
  • Informações de configuração do SQL Server 

 Fonte: http://technet.microsoft.com/pt-br/library/ms162833.aspx

 No SQL Server 2014, o SQLdiag se encontra no diretório: C:\Program Files\Microsoft SQL Server\120\Tools\Binn\, conforme imagem abaixo:
 

Rodando o SQLdiag pela primeira vez... 

 Ok, agora que já dei uma breve descrição do que é o SQLdiag, vamos executar o mesmo pela primeira vez. Abra um prompt de comando elevado e navegue até o diretório onde o utilitário se encontra, depois simplesmente execute-o conforme imagem abaixo:


 Se o utilitário iniciar com sucesso, você verá uma mensagem igual a imagem abaixo:
 

Repare que no diretório do utilitário surgiram 5 arquivos novos e uma pasta chamada SQLDIAG, conforme imagem abaixo:
 

 Abra a pasta SQLDIAG e repare que nela existem alguns arquivos referentes ao SQL Server e ao servidor em que o mesmo está instalado. No início deste post comentei que é possível coletar várias informações com o SQLdiag. Mas para isto é preciso configurá-lo, e este é o assunto do próximo post. 
 
 Não percam o próximo post pessoal, Configurando o SQLdiag!!! Um abraço!