SQLdiag – Parte 5 (Final) – Processando os resultados gerados pelo SQLdiag.


Fala galera tudo bem? Espero que sim!

Este será o último post da série sobre o SQLdiag! Irei demonstrar como vocês podem usar os dados coletados pelo utilitário para analisarem com maior facilidade como está a saúde do seu ambiente e eventualmente investigarem algum tipo de problema que está ocorrendo, ocorreu e até mesmo se precaver para que não ocorra. 

Nos posts anteriores expliquei como utilizar o utilitário, como customiza-lo e como configurar ele para rodar periodicamente no Windows, uma vez que já temos tudo isso feito em nosso ambiente precisamos de fato analisar tudo o que foi coletado. Abaixo irei listar as ferramentas principais que costumo utilizar para analisar os dados.

Performance Monitor

Acredito que a maioria conhece ou pelo menos ouviu falar desta ferramenta que existe desde os primórdios do Windows. Ela será útil para analisar os arquivos BLG’s gerados pelo SQLdiag. Vou dar um rápido exemplo abaixo:
Cliquem em Start > Run...

Digitem “perfmon” e cliquem em OK.

Quando a ferramenta abrir, no canto esquerdo escolham Performance Monitor:

Por padrão ele irá mostrar o contator Processor Timedo Windows, apenas ignore-o, cliquem com o direito na parte branca onde o gráfico está sendo mostrado e depois cliquem em Properties:
 
Agora na pasta superior cliquem na aba Source, selecionem Log Files e depois cliquem em Add...:

Agora naveguem até a pasta output onde está o arquivo BLG gerado pelo SQLdiag e adicionem ele, no meu caso o arquivo estava na pasta C:\Output, cliquem em Apply e depois em Ok:

Pronto! Agora o arquivo foi carregado no Perfmon, cliquem com o direito na parte branca e depois cliquem em Add Counters...:

Selecionem os contadores, no meu caso vou escolher apenasProcessor > %User Time e %Privileged Time, adicione-os clicando em Add>> depois em OK:

Vejam só o resultado final:

Dica: Quando vocês possuem mais de um arquivo BLG é possível consolidar eles em um único arquivo através do prompt de comando utilizando o RELOG (http://technet.microsoft.com/en-us/library/bb490958.aspx), exemplo:
Possuo os dois arquivos abaixo:

Agora quero juntar estes arquivos, abrindo um prompt de comando em modo elevado, navego até o diretório e disparo o seguinte comando:
relog arquivo1 arquivo2 –f csv –o c:\output\relogdiag

O parâmetro –f serve para especificar o formato de saída, eu costumo utilizar CSVpois comparado com o BLG ele gera arquivos menores, quanto ao –o serve para que você indique o diretório de saída e o nome do arquivo final, não é necessário que você coloque o formato do mesmo, ele fara isso automaticamente. Agora basta executar o comando:

Notem que os dois arquivos são mostrados e já é informado à faixa de horário que ambos compreendem, o arquivo gerado pode ser depois carregado no Performance Monitor.

SQL Nexus Tool
Particularmente, esta ferramenta é uma das minha preferidas quando se trata de plotar gráficos com uma cara mais amigável para serem apresentados para outras pessoas que podem não ser necessariamente técnicas. Nesta demonstração vou utilizar a versão 3 do Nexus mesmo sabendo que à 4 tenha sido lançada estes dias, pois ainda não tive tempo de testar melhor esta nova versão. A versão 3 pode ser baixada de graça no seguinte link:

Não irei customizar nenhum XML ou Scripts pois desta forma poderemos ter problemas na hora de importar os dados com o Nexus, irei utilizar os arquivos gerados com o programa Diag Manager.

Como pode ser visto no próprio site de download da ferramenta, ele tem alguns pré-requisitos para funcionar corretamente, são elas: .NET Framework 3.5 ou >,  RML utilities, Report Viewer 2010 e um SQL Server para armazenar o resultado das análises, a versão Express já é suficiente e é gratuita. Certifiquem-se de instalarem todos previamente. 

Após ter feito o Download, abra o SQL Nexus Tool:

Logo que a ferramenta abrir, ela irá solicitar que vocês apontem um SQL Server onde os dados a serem processados serão gravados, nunca apontem um SQL Server de produção, sempre busquem utilizar máquinas de homologação:
 
Uma vez que a ferramenta se conectar com a instância do SQL Server que vocês informaram, reparem na parte superior da ferramenta o seguinte:


 
A ferramenta cria uma base padrão chamada sqlnexus, cada análise deve ser feita usando um banco de dados diferente portanto, criem uma base de dados clicando na seta para baixo e depois em New Database, tentem escolher sempre um nome estratégico para esta nova base de dados, por exemplo um nome que possua a instancia, base de dados, data e hora da coleta:

Agora que criamos nossa base, copiem os dados gerados pelo SQLdiag do ambiente que vocês querem analisar para um diretório de sua preferência na máquina onde o Nexus está instalado, desta forma tudo será processado localmente sem utilizar a rede evitando assim possíveis gargalos:

Voltando ao Nexus, cliquem em File depois cliquem em Import:

Apontem o caminho onde estão os dados, em Options, Navegue em Importers>BLG Blaster>Deixem marcado o Enabled, isto fará com que ele processe os arquivos BLG gerados, voltando no mesmo menu cliquem em Save My Options para que na próxima importação isto já esteja configurado:

Agora, cliquem em Import.

Vocês primeiro verão uma tela preta referente ao processamento do BLG:

E depois verão os resultados do script Perf_Stats sendo processado:

Obs.: Sua coleta pode conter arquivos trace também que também seriam processados pelo Nexus nesta etapa, a menos que você desabilite pelo menu de importação.

Depois que a importação dos dados terminar, notem que ao lado esquerdo da ferramenta temos algumas opções de relatórios para selecionar:

Vou clicar por exemplo, em Bottleneck Analysis, vejam só o resultado:


O Nexus não para por ai, vamos agora clicar em SQL Server 2008 Perf Stats, caso de erro pode ser que vocês não possuam todos dados necessários para montar o report, neste caso, tentem clicar no do SQL Server 2005. Vejam as opções que aparecem:

Escolha a primeira para analisarmos se ocorreram bloqueios na instância do SQL Server no período que coletamos os dados com o SQLdiag e quais foram os Top Waits:

No topo o Nexus mostra os Top Waits...


Na parte inferior as cadeias de bloqueios...


Querem detalhar mais ainda uma cadeia de bloqueios é possível? Sim! Basta clicarem em cima do link em azul de qualquer uma das cadeias listadas:

Text Pad

O Text Pad é outro editor de texto de arquivos grandes assim como o Notepad++, ele pode ser utilizado se sentirem a necessidade de investigarem o resultado gerado pelo Perf Stats Script “na unha”, atualmente ele se encontra na versão 7 e pode ser baixado no site a seguir: http://www.textpad.com/download/index.html
Vou dar um exemplo rápido e algumas dicas. Após ter instalado o Text Pad, abra a ferramenta depois vá até File>Open:

Na parte de baixo deixem marcado em “All Files” e depois selecionem o arquivo de saída do script Perf Stats gerado pela execução do SQLdiag conforme figura abaixo e cliquem em Open:

Depois que a ferramenta abrir o arquivo, vocês podem navegar por ele com atalhos extremamente úteis como por exemplo o Ctrl+F, o qual navega para o próximo registro de acordo com o que você selecionar, por exemplo vou selecionar o campo Start Time:

Pressionando Ctrl+F eu pulo para o próximo campo Start Time:

Também é possível voltar ao campo anterior, pressionando Ctrl+Shift+F.

A ferramenta possibilita a abertura de arquivos com tamanho superior a 2 GB, e não existe sofrimento para navegar neles mesmo tendo todo este tamanho. 

Bom pessoal, é isso, encerro aqui mais uma série. Espero que vocês tenham gostado e qualquer dúvida me coloco a disposição! Um abraço e até o próximo post!
http://www.virtualpass.com.br/

SQLSaturday #267 Lisbon, Portugal 2014

WE did it again, SQLSaturday Lisbon, Portugal 2014 was a major success. With around 250 attendees (final numbers are coming next week, since we are allowing ourselves to relax after all craziness) spread over 7 tracks this was the biggest…

Introdução ao Buffer Pool Extension (BPE) – SQL Server 2014

Com a chegada do SQL Server 2014, novidades em termos de performance vieram de boleia... E o BPE é uma delas.

Neste post irei compilar alguns pontos chave desta nova feature do SQL Server, na qual falei no último SQL Saturday Lisboa (por sinal, a minha sessão já está disponível para download aqui).


O que é BPE?
É uma extensão ao Buffer Pool do SQL Server. O que permite aliviar a pressão na memória e melhorar a carga de instâncias com características OLTP.

O BPE irá estender o buffer pool para um ficheiro, criado em disco. E este disco deverá ser o mais eficiente possível. Falamos aqui de SSD, Fusion-IO...

A implementação do BPE é transparente para as aplicações, ou seja, nenhuma modificação a nível aplicacional é necessária. Também é importante ressaltar que não há perigo de perca de dados, visto que o BPE apenas trabalha com Clean Pages.


Aonde não devo aplicar o BPE?
Não existe uma regra sem excepções, como em tudo no SQL Server. Porem é muito provável que não existam vantagens em activar o BPE em instâncias com muitas escritas ou servidores com mais do que 64 GB de RAM (o que tem sido cada vez mais frequente ultimamente).

Por falar em memória, se estiver pensando em comprar um disco rápido para por o ficheiro criado pelo BPE, pense duas ou três vezes. Analise o mercado, e veja se não é mais vantajoso adicionar mais memória ao invés de comprar um disco caro e activar o BPE. A memória continua a ser mais eficiente. Basicamente, estude o custo beneficio das duas opções.

Recomendações
Não são muitas, por enquanto apenas duas. Pode ser que isso mude, já que essa é uma feature fresquinha... :)

A primeira, já referida, é utilizar um disco que seja o mais eficiente possível.
A segunda e última é definir um tamanho para o ficheiro que esteja compreendido entre 4 até 10 vezes o tamanho da memória disponível.


Sintaxe
ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION
 {  ON
            ( FILENAME = 'os_file_path_and_name' , SIZE = [ KB | MB | GB ] ) | OFF 



DMVs
Temos duas DMVs que passam informação sobre o BPE.

  • A primeira já existia, sys.db_os_buffer_descriptors, e apenas foi adicionado a coluna is_in_bpool_extension.
  • Existe também uma nova DMV que passa informação sobre a configuração do BPE: sys.dm_os_buffer_pool_extension_configuration.

Espero que tenha ajudado quem está iniciando com o SQL Server 2014, assim como eu :)
Caso descubra alo novo, irei actualizar este post.

Até a próxima!!

Clustered Columnstore Indexes – part 29 (“Data Loading for Better Segment Elimination”)

Continuation from the previous 28 parts, starting from http://www.nikoport.com/2013/07/05/clustered-columnstore-indexes-part-1-intro/ One of the key performance factors for Columnstore Indexes is Segment Elimination. I have been presenting on this matter for quite a while, but never actually blogged about it. Every Columnstore…

Apresentação no Grupo OWASP [DF] – SQL Server Vs. Hacker

    Pessoal é com grande prazer que informo que realizaremos (Luan.Moreno e Lenon.Leite) uma apresentação no Grupo OWASP (Open Web Application Security Project) no Chapter de Brasília. Após a apresentação de Invandindo o SQL Server Hacker Vs. DBA ? no Grupo do PASS – SQL Server DF – http://luticm.blogspot.com.br/2014/02/sqlserverdf-encontro-xix-invadindo-o.html fomos convidados para realizar uma […]

Livro – Do Banco de Dados Relacional à Tomada de Decisão

Fala galera, é com muita alegria que compartilho com vocês a realização de um sonho. Sempre tive vontade de escrever um livro e neste ano consegui. Me dediquei por alguns meses em elaborar um conteúdo que fosse capaz de ensinar à criar um projeto de Business Intelligence e possibilitar uma melhor tomada de decisão por [...]

The post Livro – Do Banco de Dados Relacional à Tomada de Decisão appeared first on Think Think SQL.

No such pipe, or this pipe has been deleted

This data comes from pipes.yahoo.com but the Pipe does not exist or has been deleted.

SQL Saturday #284 Porto Alegre

Isso mesmo pessoal, é uma honra estar participando mais uma vez de um SQL Saturday, desta vez #284 em Porto Alegre. Também em nome do SQL Server RS aproveito para convidar a todos para participar do evento que estará repleto de boas palestras. Será um grande evento, não percam, espero vocês na minha session “DBA…

SQL XII 2014 – Voting is now open

O evento SQLBits tem um característica louvável em relação a outros eventos que é o facto de convidarem a todos os potenciais visitantes a votarem em quais as sessões que gostariam de assistir no evento.

Assim convidamos todos os nossos leitores a votarem nas sessões do SQLBits que acham interessantes para que, mesmo que não possam estar presentes, seja garantido o interesse e qualidade das sessões que estarão disponiveis gratuitamente para visionamento posterior.


Suspect database – MSDTC in-doubt transaction

Em uma bela madrugada, onde todas as coisas obscuras aparecem, um dos servidores de um cluster falhou e executou um failover para um outro nó. Até esse momento nada de estranho e esse é o comportamento esperado. Problema Ao verificar os bancos de dados da instancia que sofreu o failover me deparei com o status … Continue lendo »
Go to Top