Compartilhar via


Monitorar componentes do SQL Server

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 aplicativos que acessam o SQL Server podem até mudar, mas o SQL Server gerencia automaticamente os recursos em nível de sistema, como a memória e o espaço em disco, a fim de minimizar a necessidade de ajustes manuais abrangentes em nível de sistema. 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:

  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

Depois de determinar o motivo do monitoramento, selecione as ferramentas apropriadas para esse tipo de monitoramento. O sistema operacional Windows e o SQL Server fornecem um conjunto completo de ferramentas para monitorar servidores em ambientes com grande 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:

  • O Monitor do Sistema, que permite coletar e visualizar dados em tempo real sobre atividades como uso de memória, disco e 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.

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

  • Rastreamento do SQL

  • SQL Server Profiler

  • Distributed Replay Utility

  • Monitor de Atividades do SQL Server Management Studio

  • SQL Server Management Studio Plano de execução gráfico

  • Procedimentos armazenados

  • DBCC (Comandos de console de banco de dados)

  • Funções internas

  • Sinalizadores de rastreamento

Para obter mais informações sobre os ferramentas de monitoramento do SQL Server , veja 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 Definir um filtro de rastreamento (Transact-SQL) e 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 Serverou do sistema operacional especificado. Por exemplo, quando a atividade do disco é monitorada por meio do Monitor do Sistema, o monitoramento captura dados de eventos, como leituras e gravações de disco, e os exibe na tela. Para obter mais informações, consulte Monitorar o uso de recursos (Monitor do Sistema).

  3. Salve os dados de eventos capturados.

    Salvar dados de evento capturados permite analisá-los posteriormente ou até mesmo reproduzi-los usando o Utilitário Distributed Replay ou SQL Server Profiler. Os dados de eventos capturados são salvos em um arquivo que pode ser carregado de volta na ferramenta que os criou originalmente para análise. SQL Server Profiler permite que os dados de evento sejam salvos em uma tabela SQL Server. É importante salvar os dados de eventos capturados ao criar 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 é o ideal. Para obter mais informações, veja Modelos e permissões do 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 frequência o número de deadlocks e os usuários envolvidos neles, você poderá criar um modelo com a definição desses eventos, dados de eventos e filtros de eventos, salvá-lo e reaplicar o filtro na próxima vez em que quiser monitorar deadlocks. SQL Server Profiler usa modelos de rastreamento para esse propósito. Para obter mais informações, consulte Definir padrões de definição de rastreamento (SQL Server Profiler) e Criar um modelo de rastreamento (SQL Server Profiler).

  5. Analise os dados de eventos capturados.

    Para a análise, os dados de eventos capturados são carregados no aplicativo que os capturou. Por exemplo, um rastreamento capturado de SQL Server Profiler pode ser recarregado em SQL Server Profiler para exibição e análise. Para obter mais informações, veja Exibir e analisar 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 de SQL Server Profiler e fazer recomendações de índice com base nos resultados.

  6. Reproduza os dados de eventos capturados.

    A reprodução de eventos permite estabelecer uma cópia de teste do ambiente de banco de dados do qual os dados foram capturados e repetir os eventos capturados conforme ocorreram originalmente no sistema real. Esse recurso está disponível somente com o Distributed Replay Utility ou o SQL Server Profiler. É possível reproduzir os eventos na mesma velocidade em que ocorreram originalmente, o mais rápido possível (para estressar o sistema) ou, mais provavelmente, 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, veja Reproduzir rastreamentos.