Monitorando e ajustando para visão geral do desempenho

A meta do monitoramento de bancos de dados é avaliar o desempenho do servidor. Um monitoramento eficaz requer tirar instantâneos do desempenho atual periodicamente, para isolar processos que causem problemas, e a reunião contínua de dados para a observação das tendências de desempenho. O Microsoft SQL Server e o sistema operacional Microsoft Windows fornecem utilitários que lhe permitem visualizar a condição atual do banco de dados e rastrear o desempenho conforme as condições vão mudando.

Monitorar o SQL Server lhe permite fazer o seguinte:

  • Determinar se o desempenho pode ser melhorado. Por exemplo, ao monitorar os tempos de resposta a consultas utilizadas com freqüência, é possível determinar se são necessárias alterações na consulta ou nos índices das tabelas.

  • Avaliar a atividade de usuário. Por exemplo, monitorando os usuários que tentam se conectar a uma instância do SQL Server, é possível determinar se a segurança está configurada adequadamente e testar aplicativos ou sistemas de desenvolvimento. Por exemplo, monitorando consultas SQL à medida que são executadas, é possível determinar se estão escritas corretamente e produzindo os resultados esperados.

  • Solucionar eventuais problemas ou depurar componentes de aplicativos, como procedimentos armazenados.

Monitorar é importante porque o SQL Server fornece serviço em um ambiente dinâmico. Os dados mudam no aplicativo. O tipo de acesso de que os usuários precisam muda. O modo de conexão dos usuários muda. Os tipos de aplicativo que acessam o SQL Server até podem mudar, mas, automaticamente, o SQL Server gerencia os recursos de nível de sistema, como memória e espaço em disco, de forma que a necessidade de ajustes manuais no nível do sistema seja mínima. Não obstante, o monitoramento permite aos administradores identificar tendências de desempenho, para determinar se são necessárias alterações.

Para monitorar qualquer componente do SQL Server com eficiência, siga estas etapas:

  1. Determine suas metas de monitoramento.

  2. Selecione a ferramenta apropriada.

  3. Identifique os componentes a monitorar.

  4. Selecione a métrica para esses componentes.

  5. Monitore o servidor.

  6. Analise os dados.

Cada uma destas etapas é discutida a seguir.

Determine suas metas de monitoramento

Para monitorar o SQL Server com eficiência, você deve identificar claramente o motivo do monitoramento. Podem ser motivos:

  • Estabelecer uma linha de base de desempenho.

  • Identificar alterações de desempenho no decorrer do tempo.

  • Diagnosticar problemas de desempenho específicos.

  • Identificar componentes ou processos a otimizar.

  • Comparar o efeito de aplicativos cliente diferentes sobre o desempenho.

  • Auditar a atividade de usuário.

  • Testar um servidor sob cargas diferentes.

  • Testar a arquitetura de banco de dados.

  • Testar as agendas de manutenção.

  • Testar os planos de backup e restauração.

  • Determinar quando modificar sua configuração de hardware.

Selecione a ferramenta apropriada

Tendo determinado o motivo do monitoramento, você deve selecionar as ferramentas apropriadas. O sistema operacional Windows e o SQL Server fornecem um conjunto completo de ferramentas para monitorar servidores em ambientes de alto volume de transações. Essas ferramentas revelam claramente a condição de uma instância do Mecanismo de Banco de Dados do SQL Server ou de uma instância do SQL Server Analysis Services.

O Windows fornece as seguintes ferramentas para monitorar aplicativos em execução em um servidor:

  • Monitor do Sistema, que lhe permite coletar e visualizar dados em tempo real sobre atividades como memória, disco e uso de processador.

  • Logs e alertas de desempenho.

  • Gerenciador de Tarefas.

Para obter mais informações sobre ferramentas do Windows Server ou do Windows, consulte a documentação do Windows.

O SQL Server fornece as seguintes ferramentas para monitorar componentes do SQL Server:

  • Rastreamento do SQL

  • SQL Server Profiler

  • Monitor de Atividade do SQL Server Management Studio

  • Plano de Execução Gráfico do SQL Server Management Studio

  • Procedimentos armazenados

  • DBCC (Database Console Commands)

  • Funções internas

  • Sinalizadores de rastreamento

Para obter mais informações sobre as ferramentas de monitoramento do SQL Server, consulte Ferramentas para monitoramento e ajuste de desempenho.

Identifique os componentes a monitorar

A terceira etapa para monitorar uma instância do SQL Server é identificar os componentes a monitorar. Por exemplo, se estiver usando o SQL Server Profiler para rastrear um servidor, você poderá definir que o rastreamento colete dados sobre eventos específicos. Também é possível excluir eventos que não se aplicam à situação.

Selecione a métrica para os componentes monitorados

Tendo identificado os componentes a monitorar, determine a métrica para esses componentes. Por exemplo, após selecionar os eventos a serem considerados por um rastreamento, você pode optar por incluir apenas dados específicos sobre os eventos. Limitar o rastreamento aos dados relevantes minimiza os recursos de sistema necessários para realizá-lo.

Monitore o servidor

Para monitorar o servidor, execute a ferramenta de monitoramento que você configurou para reunir dados. Por exemplo, após definir um rastreamento, você pode executá-lo para reunir dados sobre os eventos ocorridos no servidor.

Analise os dados

Terminado o rastreamento, analise os dados para ver se a meta do monitoramento foi atingida. Em caso negativo, modifique os componentes ou a métrica utilizada para monitorar o servidor.

Segue, abaixo, uma descrição do processo da captura de dados de eventos e sua disposição para uso.

  1. Aplique filtros para limitar os dados de eventos coletados.

    Limitar os dados de eventos permite que o sistema se concentre nos eventos pertinentes ao cenário de monitoramento. Por exemplo, se desejar monitorar consultas lentas, você pode usar um filtro para monitorar apenas as consultas emitidas pelo aplicativo que levam mais de 30 segundos na execução contra um banco de dados em particular. Para obter mais informações, consulte Como definir um filtro de rastreamento (Transact-SQL) e Como filtrar eventos em um rastreamento (SQL Server Profiler).

  2. Monitore (capture) os eventos.

    Assim que é habilitado, o monitoramento ativo captura dados do aplicativo, da instância do SQL Server ou do sistema operacional especificado. Por exemplo, quando a atividade do disco é monitorada por meio do Monitor do Sistema, o monitoramento captura dados de eventos, tais como leituras e gravações no disco, e os exibe na tela. Para obter mais informações, consulte Monitorando o uso de recursos (Monitor do Sistema).

  3. Salve os dados de eventos capturados.

    Salvar os dados de eventos capturados lhe permite analisá-los mais tarde ou até mesmo reproduzi-los, por meio do SQL Server Profiler. Os dados de eventos capturados são salvos em um arquivo que pode ser carregado de volta para a ferramenta que os criou originalmente para análise. O SQL Server Profiler permite que os dados de eventos sejam salvos em uma tabela do SQL Server. Salvar os dados de eventos capturados é importante quando se está criando uma linha de base de desempenho. Os dados de linha de base de desempenho são salvos e utilizados para comparar dados de eventos capturados recentemente e determinar se o desempenho está em seu nível ótimo. Para obter mais informações, consulte Usando o SQL Server Profiler.

  4. Crie modelos de rastreamento que contenham as configurações especificadas para capturar os eventos.

    Os modelos de rastreamento contêm especificações sobre os próprios eventos, dados de eventos e filtros utilizados para capturar dados. Esses modelos podem ser usados para monitorar um conjunto de eventos específicos mais tarde sem ter que redefinir os eventos, dados de eventos ou filtros. Por exemplo, se desejar monitorar com freqüência o número de deadlocks e os usuários envolvidos, você pode criar um modelo com a definição desses eventos, dados de eventos e filtros, salvá-lo e reaplicar o filtro na próxima vez em que quiser monitorar deadlocks. O SQL Server Profiler usa modelos de rastreamento para esse fim. Para obter mais informações, consulte Como definir padrões de definição de rastreamento (SQL Server Profiler) e Como criar um modelo de rastreamento (SQL Server Profiler).

  5. Analise os dados de eventos capturados.

    Para análise, os dados de evento salvos são carregados no aplicativo que os capturou . Por exemplo, um rastreamento capturado do SQL Server Profiler pode ser recarregado no SQL Server Profiler para visualização e análise. Para obter mais informações, consulte Exibindo e analisando rastreamentos com o SQL Server Profiler.

    Analisar dados de eventos requer determinar o que está acontecendo e por quê. Essas informações lhe permitem fazer alterações que possam melhorar o desempenho, como adicionar mais memória, alterar índices, corrigir problemas de código com instruções ou procedimentos armazenados do Transact-SQL e assim por diante, segundo o tipo de análise realizada. Por exemplo, você pode usar o Orientador de Otimização do Mecanismo de Banco de Dados para analisar um rastreamento capturado do SQL Server Profiler e fazer recomendações de índice de acordo com os resultados. Para obter mais informações, consulte Ajustando o design do banco de dados físico.

  6. Reproduza os dados de eventos capturados.

    A reprodução de eventos lhe permite estabelecer uma cópia de teste do ambiente de banco de dados do qual os dados foram capturados e repetir os eventos conforme ocorreram originalmente no sistema real. Este recurso está disponível apenas no SQL Server Profiler. É possível reproduzi-los na mesma velocidade em que ocorreram originalmente, o mais rápido possível (para estressar o sistema) ou, o mais provável, uma etapa por vez (para analisar o sistema após a ocorrência de cada evento). Analisando os eventos exatos em um ambiente de teste, é possível prevenir danos ao sistema de produção. Para obter mais informações, consulte Repetindo rastreamentos.