Monitorar componentes do SQL Server
Aplica-se a: SQL Server
Monitorar é importante, porque o SQL Server fornece um 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:
- Determine suas metas de monitoramento.
- Selecione a ferramenta apropriada.
- Identifique os componentes a monitorar.
- Selecione a métrica para esses componentes.
- Monitore o servidor.
- Analisar 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 oferecem 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:
- Inicie o Monitor do Sistema (Windows), que permite coletar e exibir 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.
O SQL Server fornece as seguintes ferramentas para monitorar componentes do SQL Server:
- Visão geral de eventos estendidos
- Rastreamento do SQL
- SQL Server Profiler
- SQL Server Distributed Replay
- Monitor de Atividade
- Plano de Execução Gráfico do SQL Server Management Studio
- Procedimentos Armazenados do sistema
- DBCC (Comandos de console de banco de dados)
- Exibições de gerenciamento dinâmico do sistema
- Quais são as funções do banco de dados SQL?
- Sinalizadores de rastreamento
Importante
Rastreamento do SQL e SQL Server Profiler estão preteridos. O namespace Microsoft.SqlServer.Management.Trace que contém os objetos Trace e Replay do Microsoft SQL Server também foi preterido.
Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.
Em vez disso, use Eventos Estendidos. Para obter mais informações sobre a Visão geral de Eventos Estendidos, consulte Início rápido: Eventos Estendidos e Usar o XEvent Profiler do SSMS.
Observação
O SQL Server Profiler para cargas de trabalho do Analysis Services NÃO está preterido e o suporte a ele continuará.
Para obter informações sobre ferramentas de monitoramento do SQL Server, consulte Ferramentas de Ajuste e Monitoramento 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.
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 sobre a filtragem de rastreamentos de Eventos Estendidos, consulte Início Rápido: Eventos Estendidos.
Para obter mais informações sobre filtragem de Rastreamento do SQL, confira Definir um filtro de rastreamento (Transact-SQL) e Filtrar eventos em um rastreamento (SQL Server Profiler).
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, como leituras e gravações de disco, e os exibe na tela. Para obter mais informações, confira Monitorar o uso de recursos (Monitor de Desempenho).
Salve os dados de eventos capturados.
Salvar dados de eventos capturados permite analisá-lo mais tarde. 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. É 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.
Eventos Estendidos permitem que dados de eventos sejam salvos em um arquivo de evento, contador de eventos, histograma e buffer de anéis. Para obter mais informações, consulte Destinos para Eventos Estendidos.
Dados de evento de Rastreamento do SQL podem, inclusive, ser reproduzidos usando o Utilitário Distributed Replay ou SQL Server Profiler. O SQL Server Profiler permite salvar dados de evento em um arquivo ou tabela do SQL Server. Para obter mais informações, veja Modelos e permissões do SQL Server Profiler.
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.
Uma definição de sessão de Evento Estendido é um modelo que pode ser inserido no script e usado novamente. Para criar e gerenciar sessões, confira Gerenciar Sessões de Evento no Pesquisador de Objetos. O XEvent Profiler do Management Studio já fornece modelos que estão prontos para uso. Para obter mais informações, confira Usar o SSMS XEvent Profiler.
O SQL Server Profiler usa modelos de rastreamento para esse propósito. Para obter mais informações, veja Definir padrões de definição de rastreamento (SQL Server Profiler) e Criar um modelo de rastreamento (SQL Server Profiler).
Dica
Uma definição de rastreamento do SQL pode ser convertida em uma sessão de Eventos Estendidos. Para obter mais informações, confira Converter um script existente de rastreamento SQL em uma sessão de Eventos Estendidos.
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 Evento Estendido pode ser recarregado no SQL Server Management Studio para exibição e análise. Para obter mais informações, consulte Exibir dados de eventos no SQL Server Management Studio.
Dados de Rastreamento do SQL podem ser recarregados no 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 Eventos Estendidos ou do SQL Server Profiler e fazer recomendações de índice de acordo com os resultados.
Reproduza dados de evento capturados (opcional).
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 Utilitário do Distributed Replay ou com 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.