Monitorar componentes do SQL Server
Aplica-se a:SQL Server
O monitoramento é importante porque o SQL Server fornece um serviço em um ambiente dinâmico. Os dados no aplicativo mudam. O tipo de acesso que os utilizadores requerem muda. A maneira como os usuários se conectam muda. Os tipos de aplicativos que acessam o SQL Server podem até mudar, mas o SQL Server gerencia automaticamente recursos no nível do sistema, como memória e espaço em disco, para minimizar a necessidade de ajuste manual extensivo no nível do sistema. O monitoramento permite que os administradores identifiquem tendências de desempenho para determinar se as alterações são necessárias.
Para monitorar qualquer componente do SQL Server de forma eficaz:
- Determine suas metas de monitoramento.
- Selecione a ferramenta apropriada.
- Identificar componentes a monitorar.
- Selecione métricas para esses componentes.
- Monitore o servidor.
- Analise os dados.
Estas etapas são discutidas por sua vez abaixo.
Determine suas metas de monitoramento
Para monitorar o SQL Server de forma eficaz, você deve identificar claramente o motivo do monitoramento. Os motivos podem incluir o seguinte:
- Estabeleça uma linha de base para o desempenho.
- Identifique as alterações de desempenho ao longo do tempo.
- Diagnosticar problemas de desempenho específicos.
- Identifique componentes ou processos a serem otimizados.
- Compare o efeito de diferentes aplicativos cliente no desempenho.
- Auditar a atividade do usuário.
- Teste um servidor sob diferentes cargas.
- Testar a arquitetura do banco de dados.
- Cronogramas de manutenção de testes.
- Teste planos de backup e restauração.
- Determinar quando modificar a configuração de hardware.
Selecione a ferramenta apropriada
Depois de determinar por que você está monitorando, você deve selecionar 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 de transações intensivas. 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 que estão sendo executados em um servidor:
- Iniciar Monitor de Desempenho (Windows), que permite coletar e visualizar dados em tempo real sobre atividades como memória, disco e uso do processador.
- Logs e alertas de desempenho
- Gestor de Tarefas
Para obter mais informações sobre o Windows Server ou as ferramentas do Windows, consulte a documentação do Windows.
O SQL Server fornece as seguintes ferramentas para monitorar componentes do SQL Server:
- Visão geral dos Eventos Estendidos
- Rastreamento de SQL
- SQL Server Profiler
- SQL Server Distributed Replay
- Monitor de Atividade
- Plano de apresentação gráfico do SQL Server Management Studio
- Procedimentos armazenados do sistema
- Comandos do Console de Banco de Dados (DBCC)
- Visualizações de gerenciamento dinâmico do sistema
- Quais são as funções do banco de dados SQL?
- Sinalizadores de rastreamento
Importante
O SQL Trace e o SQL Server Profiler foram preteridos. O namespace Microsoft.SqlServer.Management.Trace, que contém os objetos Trace e Replay do Microsoft SQL Server, também está obsoleto.
Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso.
Em vez disso, use Extended Events. Para obter mais informações sobre visão geral de Eventos Estendidos, consulte Guia de início rápido: eventos estendidos e Usar o SSMS XEvent Profiler.
Observação
O SQL Server Profiler para cargas de trabalho do Analysis Services NÃO foi preterido e continuará a ter suporte.
Para obter mais informações sobre as ferramentas de monitoramento do SQL Server, consulte Ferramentas de monitoramento e ajuste de desempenho.
Identificar os componentes a serem monitorados
A terceira etapa para monitorar uma instância do SQL Server é identificar os componentes que você monitora. Por exemplo, se você estiver usando o SQL Server Profiler para rastrear um servidor, poderá definir o rastreamento para coletar dados sobre eventos específicos. Você também pode excluir eventos que não se aplicam à sua situação.
Selecionar métricas para componentes monitorados
Depois de identificar os componentes a serem monitorados, determine as métricas dos componentes monitorados. Por exemplo, depois de selecionar os eventos a serem incluídos em um rastreamento, você pode optar por incluir apenas dados específicos sobre os eventos. Limitar o rastreamento a dados relevantes minimiza os recursos do sistema necessários para executar o rastreamento.
Monitorar o servidor
Para monitorar o servidor, execute a ferramenta de monitoramento que você configurou para coletar dados. Por exemplo, depois que um rastreamento é definido, você pode executá-lo para coletar dados sobre eventos gerados no servidor.
Analise os dados
Depois que o rastreamento terminar, analise os dados para ver se você atingiu sua meta de monitoramento. Caso contrário, modifique os componentes ou métricas usados para monitorar o servidor.
A seguir descrevemos o processo para capturar dados de eventos e colocá-los em uso.
Aplique filtros para limitar os dados de eventos coletados.
A limitação dos dados de eventos permite que o sistema se concentre nos eventos pertinentes ao cenário de monitoramento. Por exemplo, se você quiser monitorar consultas lentas, poderá usar um filtro para monitorar apenas as consultas emitidas pelo aplicativo que levam mais de 30 segundos para serem executadas em um determinado banco de dados.
Para mais informações sobre como filtrar rastreamentos de Eventos Estendidos, consulte Início Rápido : Eventos Estendidos.
Para obter mais informações sobre como filtrar o Rastreamento SQL, consulte Definir um filtro de rastreamento (Transact-SQL) e Filtrar eventos em um rastreamento (SQL Server Profiler).
Monitorizar (capturar) eventos.
Assim que habilitado, o monitoramento ativo captura dados do aplicativo, instância do SQL Server ou sistema operacional especificados. Por exemplo, quando a atividade do disco é monitorada usando o 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 de desempenho).
Salve os dados de eventos capturados.
Salvar os dados de eventos capturados permite analisá-los posteriormente. Dados de eventos capturados que são salvos em um arquivo que pode ser carregado de volta na ferramenta que o criou originalmente para análise. Salvar dados de eventos capturados é importante quando você cria uma linha de base de desempenho. Os dados da linha de base de desempenho são salvos e usados, ao comparar dados de eventos capturados recentemente, para determinar se o desempenho é o ideal.
Eventos Estendidos permitem que os dados de eventos sejam salvos num ficheiro de eventos, contador de eventos, histograma e buffer de anel. Para obter mais informações, consulte Targets for Extended Events.
Os dados de eventos de rastreamento do SQL podem ser até reproduzidos utilizando o Distributed Replay Utility ou o SQL Server Profiler. O SQL Server Profiler permite que os dados de eventos sejam salvos em um arquivo ou tabela do SQL Server. Para obter mais informações, consulte 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 incluem especificações sobre os próprios eventos, dados de eventos e filtros usados para capturar dados. Esses modelos podem ser usados para monitorar um conjunto específico de eventos posteriormente sem redefinir os eventos, dados de eventos e filtros. Por exemplo, se você quiser monitorar frequentemente o número de deadlocks e os usuários envolvidos nesses deadlocks, poderá criar um modelo definindo esses eventos, dados de eventos e filtros de eventos; salve o modelo; e reaplique o filtro na próxima vez que quiser monitorar deadlocks.
Uma definição de sessão de Evento Estendido é um modelo que pode ser scriptado e reutilizado. Para criar e gerenciar sessões, consulte Gerenciar sessões de eventos no Pesquisador de Objetos. O Management Studio XEvent Profiler já fornece modelos prontos para uso. Para obter mais informações, consulte Utilizar o SSMS XEvent Profiler.
O SQL Server Profiler usa modelos de rastreamento para essa finalidade. 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).
Dica
Uma definição de Rastreamento SQL pode ser convertida em uma sessão de Evento Estendido. Para obter mais informações, consulte Converter um script de rastreamento SQL existente em uma sessão de eventos estendida.
Analise os dados de eventos capturados.
Para serem analisados, os dados de eventos capturados são carregados no aplicativo que capturou os dados.
Por exemplo, um rastreamento de Evento Estendido capturado 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.
Os dados da SQL Trace podem ser recarregados no SQL Server Profiler para visualização e análise. Para obter mais informações, consulte Exibir e analisar rastreamentos com o SQL Server Profiler.
A análise de dados de eventos envolve determinar o que está ocorrendo e por quê. Essas informações permitem fazer alterações que podem melhorar o desempenho, como adicionar mais memória, alterar índices, corrigir problemas de codificação com instruções Transact-SQL ou procedimentos armazenados e assim por diante, dependendo do tipo de análise executada. 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 com base nos resultados.
Reproduza os dados do evento capturado (opcional).
A repetição de eventos permite estabelecer uma cópia de teste do ambiente de banco de dados a partir do qual os dados foram capturados e, em seguida, repetir os eventos capturados como ocorreram originalmente no sistema real. Esse recurso só está disponível com o Distributed Replay Utility ou o SQL Server Profiler. Você pode reproduzir os eventos na mesma velocidade em que ocorreram originalmente, o mais rápido possível (para estressar o sistema) ou, mais provavelmente, um passo de cada vez (para analisar o sistema após cada evento ter ocorrido). Ao analisar os eventos exatos em um ambiente de teste, você pode evitar danos ao sistema de produção. Para obter mais informações, consulte Replay Traces.