SQLdiag - Parte 3 - Configurando o SQLdiag (Script's customizados).


Fala galera tudo tranquilo? Espero que sim! Estou saindo de férias e ficarei alguns dias sem postar coisas novas por aqui, mas, para sair em "grande estilo" estou publicando mais um post da série sobre o SQLdiag! Enjoy!

 Hoje vou demonstrar como fazer com que o utilitário colete também resultados de scripts disparados de tempos em tempos contra a instância do SQL Server que deseja monitorar.

 Primeiramente, baixem a ferramenta Diag Manager no CodePlex


 Ao abrirem a ferramenta, naveguem até a aba do SQL Server 2008 e na direita em Custom Diagnostics, deixem apenas selecionado SQL 2008 Perf Stats e nas demais opções deixem conforme a imagem abaixo:


 Depois, cliquem em Save, e especifiquem um caminho para que o programa salve o arquivo XML:

Na parte em que o programa questiona a versão, selecionem qualquer uma das duas e clique em OK:
 
 
 Abra o XML que foi gerado no Notepad e procurem pelo trecho:
 
type="TSQL_Script"

 Vejam que interessante:

  <CustomTask enabled="true" groupname="SQL 2008 Perf Stats" taskname="SQL 2008 Perf Stats Script" type="TSQL_Script" point="Startup" wait="No" cmd="SQL_2008_Perf_Stats.sql" pollinginterval="0" />

 Temos uma task personalizada dentro do XML chamando o script SQL_2008_Perf_Stats.sql. Quero rodar um script de minha autoria, é possível? Claro! Vamos criar um script simples que vai ter o seguinte código:

SET NOCOUNT ON

WHILE 0<1

BEGIN

SELECT 'start time:', GETDATE();
EXEC sp_helpdb
WAITFOR DELAY '00:00:05'

END;

 Vamos chamar este script de helpdb_sample.sql. Agora copiem o script para dentro do diretório default do utilitário SQLDiag, depois copiem para um outro diretório o mesmo XML que já começamos a customizar no segundo post da série sobre o SQLdiag (http://sqlmagu.blogspot.com.br/2014/01/sqldiag-parte-2-configurando-o-sqldiag.html), chamado SQLDiag_custom.XML, abram o XML copiado e localizem a tag:
<CustomDiagnostics>
  
 Agora, abaixo dela adicionem o seguinte trecho de código:

  <CustomTask enabled="true" groupname="HelpDB Sample Script" taskname=" HelpDB Sample Script" type="TSQL_Script" point="Startup" wait="No" cmd="helpdb_sample.sql" pollinginterval="0" />

 O que está em amarelo são nomes de nossa preferência, o nome em verde deve ser exatamente igual ao do script no diretório default do SQLdiag, do contrário não irá funcionar. Salvem as alterações no XML e colem ele de volta no diretório do SQLdiag, aceitem a substituição dos arquivos.

 It’s show time! Abra um prompt de comando com privilégios administrativos, naveguem até o diretório do utilitário e rodem o serviço da seguinte forma: sqldiag /I SQLDiag_custom.XML, como na imagem abaixo:


 Se 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:
 

 Vejam só, existe um OUT file com o mesmo nome do nosso script de exemplo. Abram o arquivo e reparem no conteúdo:
 

 Isso mesmo! Agora nossa coleta usando o SQLdiag além de coletar dados do Performance Monitor, também coleta resultados de scripts! Por hora é só pessoal, espero que tenham gostado e não percam o próximo post! Irei demonstrar como fazer com que o SQLdiag seja um serviço instalado no Windows que roda periodicamente de acordo com os horários que nós definirmos! Até lá!

 Fonte: