System Monitor & SQL Profiler - Revista SQL Magazine 92

O artigo fala sobre a utilização das ferramentas System Monitor e SQL Server Profiler na identificação de erros e gargalos para melhoria na qualidade de nossas aplicações.

Fique por dentro
De que se trata o artigo: O artigo fala sobre a utilização das ferramentas System Monitor e SQL Server Profiler na identificação de erros e gargalos para melhoria na qualidade de nossas aplicações. Em que situação o tema é útil: Se constantemente você recebe queixas de queda de desempenho, está na hora de verificar como está a “saúde” do seu ambiente de banco de dados. Problemas assim podem ser um bom indício de que algo não está funcionando corretamente. Resumo DevMan: Este artigo apresenta, de forma teórica e prática, um estudo sobre as ferramentas System Monitor e SQL Server Profile. Ao final, realizamos um estudo de caso para demonstrar como aproveitar o melhor destas duas ferramentas trabalhando em conjunto na identificação de problemas do dia a dia de um DBA.

É muito comum nos dias de hoje enfrentarmos problemas com desempenho no trabalho ou até mesmo no conforto de nossa casa. Você pode estar se perguntando: como assim? Imagine a seguinte situação: uma turma de amigos resolveu marcar um encontro on-line para disputar aquele jogo que acabou de ser lançado. Caso você não tenha uma boa placa de vídeo, memória e processador, a reuniãozinha vai ter que ficar para outro dia, pois o jogo vai ficar lento, a imagem no seu monitor ficará instável, entre outros problemas.

Falando no mundo do banco de dados, infelizmente estamos sempre sujeitos a falhas de hardware, bloqueio de transações, paginação, dentre outras coisas que acarretam na degradação das nossas aplicações. Diante destas situações, abordaremos neste artigo como monitorar seu ambiente de SQL Server e como diagnosticar tais problemas através de um estudo de caso prático. O desafio é reunir o System Monitor com o SQL Profiler de uma maneira coerente, de forma que nos permita fazer uma análise eficiente.

Para isso, vamos criar um cenário fictício tendo como objetivo ajudar na compreensão dos conceitos. Deste modo, imaginemos que somos funcionários da AdventureWorks e que parte das atribuições destinadas a nós incluem ficarmos encarregados de monitorar o ambiente de produção, ou seja, verificar o desempenho do banco de dados como um todo. Para tal, podemos realizar tarefas como analisar se está acontecendo I/O no disco, como está o processador ou a memória do servidor, quantas conexões estão ativas, e assim por diante.

Apesar disso, ultimamente o Help Desk tem recebido muitas ligações reportando problemas de lentidão com as aplicações. Assim, resolvemos investigar o motivo dessas reclamações.

Adotando o System Monitor

Com o objetivo de solucionar nosso problema, a primeira coisa que vamos fazer é utilizar o System Monitor para coletar as informações do servidor de banco de dados.

O System Monitor mostra graficamente os dados em tempo real de desempenho, incluindo a utilização do processador, cache, fila de impressão, sincronização, uso da largura de banda e milhares de outras estatísticas. Ele emprega uma arquitetura de sondagem para capturar e registrar dados numéricos expostos pelos aplicativos. Para isso, o DBA escolhe os contadores a serem capturados para estudo de acordo com a análise que ele necessita fazer. No nosso caso, vamos escolher os contadores que nos ajudará a identificar o motivo da queda de desempenho nas aplicações.

No entanto, para entendermos como obter as informações desejadas, é importante compreender os três níveis fundamentais para os critérios de monitoramento (veja a Figura 1). Estes níveis são:

Figura 1. Contadores de desempenho do Performance Monitor

Deste modo, antes de criarmos nosso primeiro Data Collector Sets, vamos destacar três contadores em especial. São eles: System: Processor Queue Length;Network Interface: Output Queue Length; e Physical Disk: Avg Disk Queue Length.Se identificarmos alguma anormalidade neles, teremos sérios problemas no sistema.

Artigos relacionados