Compartilhe agora:
Conteúdo esconder

1. Introdução

1.1 O que é SQL Server Monitor de atividade?

SQL Server O Monitor de Atividades é uma ferramenta de diagnóstico integrada. SQL Server Estúdio de gerenciamento que exibe informações sobre SQL Server processos e seu efeito no desempenho do servidor. Permite rastrear SQL Server Processar processos, monitorar esperas de recursos, analisar consultas dispendiosas e observar padrões de E/S — tudo a partir de uma única interface.

SQL Server monitor de atividade

1.2 Por que usar SQL Server Monitor de atividade?

O Monitor de Atividade serve como sua primeira linha de defesa na resolução de problemas de desempenho. Ele fornece visibilidade imediata do que está acontecendo em seu computador. SQL Server instância sem exigir consultas T-SQL complexas ou ferramentas de terceiros.

A ferramenta se destaca por ajudar você a identificar rapidamente problemas comuns, como sessões bloqueadas, consultas que consomem muitos recursos da CPU, execuções excessivas de consultas e gargalos de E/S. Quando os usuários relatam que um aplicativo está lento ou não responde, o Monitor de Atividade ajuda você a determinar se o servidor de banco de dados é o culpado.

Para administradores de banco de dados que não trabalham com SQL Server Diariamente, o Monitor de Atividade oferece um ponto de entrada acessível para a compreensão da atividade do servidor. Até mesmo DBAs experientes o utilizam como ponto de partida para investigações de desempenho.

1.3 Monitor de atividades versus outras ferramentas de monitoramento

Embora o Monitor de Atividades seja valioso, é importante entender como ele se compara a outras opções de monitoramento:

Monitor de Atividade vs sp_WhoIsActive: O Monitor de Atividades fornece uma interface gráfica com vários painéis, enquanto o procedimento armazenado sp_WhoIsActive é abrangente e oferece informações mais detalhadas em um único conjunto de resultados. O sp_WhoIsActive mostra tipos de espera específicos que o Monitor de Atividades agrupa e fornece informações de bloqueio mais granulares.

Monitor de Atividade vs sp_who2: O comando tradicional sp_who2 exibe informações básicas da sessão, mas o Monitor de Atividades vai além, mostrando estatísticas de espera, consultas dispendiosas e métricas de E/S em um formato visual e organizado.

Monitor de atividades versus ferramentas de terceiros: Soluções comerciais de monitoramento, como o SolarWinds Database Performance Analyzer, oferecem rastreamento histórico, alertas e análises avançadas que o Activity Monitor não possui. No entanto, o Activity Monitor não requer custos adicionais nem instalação.

1.4 Principais benefícios para administradores de banco de dados

O Activity Monitor oferece diversas vantagens que o tornam uma ferramenta essencial para DBAs:

  • Custo zero: Como um recurso integrado SQL Server Com o recurso Management Studio, não há taxa de licenciamento nem necessidade de implantação.
  • Monitoramento em tempo real: Veja a atividade atual do servidor em tempo real, com intervalos de atualização configuráveis ​​de 1 segundo a 1 hora.
  • Ações Integradas: Clique com o botão direito do mouse nos processos para encerrar sessões, visualizar detalhes da consulta ou iniciar um novo processo. SQL Server Rastreamentos do Profiler — tudo feito dentro da própria ferramenta.
  • Múltiplas Perspectivas: Visualize a saúde do servidor sob diferentes perspectivas por meio de cinco painéis especializados, cada um focado em aspectos específicos do desempenho.
  • Solução rápida de problemas: Identifique os problemas de desempenho mais comuns em minutos, acelerando o tempo médio de resolução.
  • Baixa barreira de entrada: Não é necessário conhecimento avançado para começar a usar a ferramenta de forma eficaz, embora seja mais aprofundado. SQL Server A experiência ajuda na interpretação.

2. Primeiros passos com o Monitor de Atividades

Antes de poder usar o Monitor de Atividades de forma eficaz, você precisa entender os pré-requisitos, as permissões necessárias e os vários métodos para iniciar a ferramenta.

2.1 Pré-requisitos e Requisitos do Sistema

Para utilizar o SQL Server Monitor de atividades, você precisa SQL Server O Microsoft Office Management Studio (SSMS) está instalado em sua máquina local ou em um servidor remoto. A ferramenta Monitor de Atividades foi significativamente reformulada em SQL Server 2008, portanto, as informações neste guia se aplicam a SQL Server 2008 e versões posteriores.

Você precisa ter conectividade de rede com o SQL Server instância que você deseja monitorar. Para bancos de dados hospedados na nuvem, normalmente você precisará de uma conexão VPN ou regras de firewall configuradas corretamente para acessar a instância.

O Monitor de Atividades funciona com todas as edições do SQL Server, incluindo as versões Express, Standard e Enterprise. A ferramenta em si é executada na máquina do cliente dentro do SSMS, portanto, os recursos do servidor são afetados apenas pelas consultas de monitoramento que ela executa.

2.2 Permissões necessárias

As permissões adequadas são essenciais para o funcionamento correto do Monitor de Atividade. Sem os direitos apropriados, você poderá ver uma tela em branco ou receber erros de acesso negado.

2.2.1 Permissão para visualizar o estado do servidor

O VER ESTADO DO SERVIDOR A permissão é o requisito principal para usar o Monitor de Atividades. Essa permissão em nível de servidor permite visualizar todos os processos ativos e suas respectivas métricas.

Para conceder essa permissão, um administrador do servidor pode executar o seguinte comando:

GRANT VIEW SERVER STATE TO [YourLoginName];

Sem a opção VIEW SERVER STATE, o Monitor de Atividades pode abrir, mas não exibir dados em nenhum de seus painéis.

2.2.2 Permissões em nível de banco de dados

Para visualizar informações no painel de E/S de Arquivo de Dados, você precisa de permissões adicionais. Especificamente, você deve ter uma das seguintes combinações:

  • CRIAR BANCO DE DADOS permissão, ou
  • ALTERAR QUALQUER BANCO DE DADOS permissão, ou
  • VER QUALQUER DEFINIÇÃO permissão

Essas permissões devem ser combinadas com VER ESTADO DO SERVIDOR Para funcionalidade completa do Monitor de Atividades.

2.2.3 Resolução de problemas de permissões

Se o Monitor de Atividade abrir, mas não exibir dados, a causa mais comum é a falta de permissões. Verifique se sua conta tem a permissão "VISUALIZAR ESTADO DO SERVIDOR" concedida no nível do servidor. Você pode verificar suas permissões executando o seguinte comando:

SELECT * FROM fn_my_permissions(NULL, 'SERVER');

Procure por 'VIEW SERVER STATE' na coluna permission_name. Se não estiver presente, entre em contato com o administrador do banco de dados para que ele conceda a permissão.

2.3 Como abrir o Monitor de Atividades no SSMS

SQL Server O Management Studio oferece quatro métodos diferentes para iniciar o Monitor de Atividades, proporcionando flexibilidade com base nas suas preferências de fluxo de trabalho.

2.3.1 Método 1: A partir da barra de ferramentas

A maneira mais rápida de abrir o Monitor de Atividade é usando o ícone na barra de ferramentas:

  1. Conecte-se ao seu SQL Server instância em SQL Server Estúdio de Gestão.
  2. Localize o ícone do Monitor de Atividade na barra de ferramentas padrão (ele se parece com um gráfico de barras com um botão verde de reprodução).
  3. Clique no ícone para iniciar o Monitor de Atividades.

Começar SQL Server Monitor de atividades a partir do ícone na barra de ferramentas SQL Server Estúdio de Gestão.

Este método é o mais rápido quando você já está trabalhando no SSMS e precisa verificar rapidamente a atividade do servidor.

2.3.2 Método 2: A partir do Explorador de Objetos

Você também pode iniciar o Monitor de Atividades diretamente do Explorador de Objetos:

  1. No Explorador de Objetos, localize o SQL Server instância que você deseja monitorar.
  2. Clique com o botão direito do mouse no nome da instância.
  3. Selecionar monitor de atividade no menu de contexto.

Começar SQL Server Monitore a atividade clicando com o botão direito do mouse na instância no Explorador de Objetos. SQL Server Estúdio de Gestão.

Esse método é útil ao conectar-se a vários servidores, pois garante que você esteja monitorando a instância correta.

2.3.3 Método 3: Usando Atalho de Teclado

Para usuários que priorizam o teclado, SQL Server O Management Studio oferece um atalho dedicado:

  1. Certifique-se de que o SSMS esteja na janela ativa e que você esteja conectado a uma instância.
  2. Imprensa Ctrl + outro + A.
  3. O Monitor de Atividades será aberto para a instância atualmente selecionada no Explorador de Objetos.

Observe que o Monitor de Atividades se conectará à instância do servidor que você selecionou no Explorador de Objetos; portanto, certifique-se de selecionar a instância correta antes de usar este atalho.

2.3.4 Método 4: A partir do Menu de Opções (Configuração de Inicialização)

Se você usa o Monitor de Atividades com frequência, pode configurar o SSMS para iniciá-lo automaticamente sempre que iniciar o aplicativo:

  1. In SQL Server Estúdio de Gestão, navegue até Ferramentas -> Opções.
  2. Na caixa de diálogo Opções, expanda Meio AmbienteE, em seguida, selecione Comece.
  3. De Na inicialização lista suspensa, selecione Abra o Explorador de Objetos e o Monitor de Atividades..
  4. Selecionar OK.

Defina a configuração de inicialização para SQL Server Monitor de atividades em SQL Server Estúdio de Gestão.

Na próxima vez que você iniciar o SSMS e se conectar a um servidor, o Monitor de Atividades será aberto automaticamente junto com o Explorador de Objetos.

3. Compreendendo os painéis do Monitor de Atividade

O Monitor de Atividades organiza as informações em cinco painéis expansíveis, cada um oferecendo uma perspectiva diferente da atividade do servidor. Compreender o que cada painel exibe é crucial para uma solução de problemas eficaz.

3.1 Painel de Visão Geral

O painel Visão Geral apresenta quatro gráficos em tempo real que fornecem uma visão geral rápida da saúde do seu sistema. SQL Server Por exemplo, esses gráficos são atualizados em um intervalo configurável e ajudam você a identificar padrões anormais rapidamente.

O painel de visão geral em SQL Server Monitor de atividades.

3.1.1% Tempo de Processador

Este gráfico mostra a porcentagem de tempo que o processador gasta executando threads não ociosas para o SQL Server instância em todas as CPUs. O valor representa SQL Serverutilização do processador, não a utilização total da CPU do servidor.

Se você observar constantemente o tempo de processamento em ou próximo de 100%, seu servidor está com a CPU sobrecarregada. Isso pode indicar consultas ineficientes, índices ausentes ou capacidade de hardware insuficiente. Use o painel "Consultas recentes com alto consumo de CPU" para identificar quais consultas estão consumindo mais CPU.

3.1.2 Tarefas em espera

Essa métrica exibe o número de tarefas que estão aguardando a liberação de recursos para poderem prosseguir. As tarefas podem estar aguardando CPU, E/S, memória ou bloqueios.

Um número consistentemente alto de tarefas em espera indica disputa por recursos. O painel "Esperas de Recursos" fornece mais detalhes sobre os tipos de recursos que estão causando as esperas.

3.1.3 Entrada/Saída do Banco de Dados (MB/s)

Este gráfico mostra a taxa de transferência de dados entre a memória e o disco. Ele combina leituras e gravações, medidas em megabytes por segundo.

Picos de E/S no banco de dados podem indicar consultas que realizam grandes varreduras de tabela, atividade excessiva de registro em log ou operações de checkpoint. O painel de E/S de Arquivo de Dados detalha a atividade de E/S por banco de dados e arquivo.

3.1.4 Solicitações em lote/seg

Essa métrica representa o número de SQL Server Lotes recebidos pela instância por segundo. Um lote pode ser uma única instrução ou várias instruções enviadas juntas.

Esse valor fornece uma noção da atividade geral do servidor. Quedas repentinas nas solicitações em lote durante o horário comercial normal podem indicar problemas de conectividade do aplicativo ou problemas que afetam o usuário.

3.1.5 Definindo intervalos de atualização

Você pode personalizar a frequência com que o Monitor de Atividade atualiza seus dados:

  1. Clique com o botão direito do mouse em qualquer lugar no painel Visão geral.
  2. Selecionar Intervalo de atualização.
  3. Escolha um intervalo entre os valores predefinidos: 1 segundo, 5 segundos, 10 segundos (padrão), 30 segundos, 1 minuto ou 1 hora.

Defina o intervalo de atualização em SQL Server Painel de visão geral do Monitor de Atividades.

Configurar intervalos de atualização inferiores a 10 segundos aumenta a sobrecarga de monitoramento no seu servidor. Para sistemas de produção sob carga elevada, considere usar intervalos de 30 segundos ou mais para minimizar o impacto.

3.2 Painel de Processos

O painel Processos exibe informações sobre as sessões em execução no seu dispositivo. SQL Server Por exemplo, este painel é essencial para identificar quem está fazendo o quê e detectar problemas que estejam bloqueando a execução.

O painel Processos em SQL Server Monitor de atividades.

3.2.1 Compreendendo as informações do processo

Cada linha no painel Processos representa uma sessão ativa no servidor. O painel exibe as sessões de todos os bancos de dados e de todos os usuários, oferecendo uma visão abrangente da atividade do servidor.

As informações exibidas incluem o nome de login, o nome do aplicativo, o nome do host, o banco de dados acessado e o comando atual. Isso ajuda a correlacionar a atividade do banco de dados com usuários ou aplicativos específicos.

3.2.2 Explicação das colunas principais

Compreender as colunas principais ajuda você a interpretar as informações do processo de forma eficaz:

  • Identificação de sessão: Um identificador único para cada conexão. Os processos do sistema usam IDs de sessão negativos.
  • Processo do usuário: Indica se esta é uma sessão de usuário (Sim) ou um processo do sistema (Não).
  • Entre: O SQL Server login ou conta do Windows associada à sessão.
  • Base de dados: O contexto atual do banco de dados para a sessão.
  • Estado da tarefa: Mostra o que a sessão está fazendo no momento (EXECUTANDO, SUSPENSA, REPOUSANDO, etc.).
  • Comando: O tipo de comando que está sendo executado (SELECT, INSERT, UPDATE, etc.).
  • Aplicação: O nome do aplicativo que criou a conexão.
  • Tempo de espera: Há quanto tempo (em milissegundos) a sessão está aguardando recursos.
  • Tipo de espera: O tipo específico de recurso que a sessão está aguardando.
  • Tempo de CPU: Tempo total de CPU consumido por esta sessão desde que foi conectada.
  • Uso da memória: Quantidade de memória (em KB) atualmente alocada para a sessão.

3.2.3 Processos de Filtragem e Classificação

O painel Processos inclui recursos de filtragem avançados para ajudar você a se concentrar nas sessões relevantes:

  1. Clique na seta suspensa em qualquer cabeçalho de coluna.
  2. O filtro mostra os valores disponíveis para essa coluna, incluindo Todas as, Blanks e Não-em-brancos.
  3. Selecione valores específicos para filtrar a exibição e mostrar apenas essas sessões.

Filtrar os processos em SQL Server Monitor de atividades.

Por exemplo, você pode filtrar Estado da Tarefa para mostrar apenas as sessões EM EXECUÇÃO ou filtrar banco de dados Para visualizar a atividade em relação a um banco de dados específico.

Você também pode classificar por qualquer coluna clicando em seu cabeçalho. Clique uma vez para ordem crescente e duas vezes para ordem decrescente.

Classifique os processos em SQL Server Monitor de atividades.

3.2.4 Identificação de bloqueios e sessões bloqueadas

O painel Processos ajuda você a identificar cenários de bloqueio em que uma sessão impede que outras prossigam:

  • Bloqueado por: Exibe o ID da sessão que está bloqueando esta sessão. Se esta coluna contiver um valor, a sessão está aguardando um bloqueio mantido por outra sessão.
  • Bloqueador de Cabeça: Exibe '1' se esta sessão estiver bloqueando outras, mas não estiver bloqueada ela mesma. Esta é a causa raiz de uma cadeia de bloqueios.

Exibir processos bloqueados e em processo de bloqueio em SQL Server Monitor de atividades.

Para investigar um problema de bloqueio, primeiro identifique o bloqueador principal (a sessão marcada com '1' na coluna Bloqueador Principal), depois examine o que ela está fazendo e decida se deve deixá-la terminar ou encerrá-la.

3.2.5 Ações do Processo (Finalizar, Detalhes, Rastrear)

O Monitor de Atividades permite que você execute ações em sessões individuais:

  1. Clique com o botão direito do mouse em qualquer sessão no painel Processos.
  2. Você verá várias opções:
    • detalhes: Exibe o último comando executado por esta sessão.
    • Encerrar processo: Encerra a sessão (use com cautela).
    • Rastrear processo em SQL Server Analisador: Lança SQL Server Profiler e filtra automaticamente para mostrar apenas a atividade desta sessão.

Executar ações nos processos em SQL Server Monitor de atividades.

A opção Detalhes mostra o texto do comando, mas observe que este é o último O comando foi executado, mas pode não estar mais em execução. A opção Rastrear é particularmente útil quando você precisa ver a sequência completa de comandos que uma sessão está executando.

3.3 Painel de Esperas de Recursos

O painel "Esperas de Recursos" resume as estatísticas de espera, mostrando quais tipos de recursos as sessões estão aguardando com mais frequência. Essas informações são cruciais para diagnosticar gargalos de desempenho.

O painel de espera de recursos em SQL Server Monitor de atividades.

3.3.1 Compreendendo as Estatísticas de Espera

Ao SQL Server Se o servidor não puder conceder imediatamente uma solicitação de recurso (como um bloqueio, tempo de CPU ou memória), a tarefa solicitante entra em estado de espera. As estatísticas de espera rastreiam esses períodos de espera e ajudam você a entender onde o servidor está gastando tempo esperando em vez de trabalhando.

O painel "Resource Waits" coleta dados de exibições de gerenciamento dinâmico do sistema, como sys.dm_os_wait_stats e sys.dm_exec_requests. A cada intervalo de atualização, ele calcula a diferença entre o instantâneo atual e o anterior, mostrando a taxa de acumulação para cada tipo de espera.

3.3.2 Categorias de espera

O Monitor de Atividades agrupa centenas de tipos de espera individuais em categorias mais amplas para simplificar a interpretação:

  • CPU: Tarefas aguardando disponibilidade de tempo de CPU.
  • Trava do buffer: Aguarda objetos de sincronização de curto prazo que protegem o acesso a páginas de dados na memória. Esta categoria inclui esperas de bloqueio de página (PAGELATCH_*).
  • Bloquear: Aguardações causadas por sessões que mantêm bloqueios necessários para outras sessões.
  • Memória: Aguarda concessões de memória necessárias para operações como classificação e hashing.
  • Entrada/Saída de Rede: Aguarda o envio ou recebimento de dados de clientes.
  • SQL CLR: Aguardações relacionadas à execução do Common Language Runtime.

Embora esse agrupamento simplifique a visualização, ele também obscurece detalhes importantes. Por exemplo, "Buffer Latch" pode agrupar esperas PAGELATCH_SH, PAGELATCH_UP e PAGELATCH_EX, que têm implicações diferentes para o desempenho.

3.3.3 Interpretação do Tempo de Espera e das Tarefas de Espera

O painel "Esperas de Recursos" exibe duas métricas principais para cada categoria de espera:

  • Tempo de espera cumulativo (ms): O total de milissegundos acumulados durante o intervalo de atualização atual para esta categoria de espera.
  • Tarefas em espera: Número de tarefas atualmente aguardando recursos nesta categoria.

O valor do tempo de espera é particularmente interessante. Se você tiver um intervalo de atualização de 10 segundos e observar um tempo de espera de 20,000 ms para uma categoria, isso indica múltiplas esperas simultâneas (20,000 ms / 10,000 ms = média de 2 esperas simultâneas durante o intervalo).

3.3.4 Identificação de gargalos de desempenho

Use o painel "Esperas de Recursos" para identificar onde seu servidor está gastando mais tempo esperando:

  1. Expanda o painel de esperas de recursos.
  2. Observe as categorias de espera que acumulam os maiores tempos de espera.
  3. Ordenar Tempo de espera cumulativo Para ver quais recursos são mais limitados.

No painel "Esperas de Recursos", classifique por "Tempo de Espera Cumulativo" para encontrar o gargalo de desempenho.

Altos tempos de espera por latch de buffer geralmente indicam contenção por páginas de dados na memória, o que pode sugerir gargalos de E/S ou contenção no tempdb. Altos tempos de espera por lock apontam para problemas de bloqueio. Altos tempos de espera por memória sugerem alocação insuficiente de memória para operações de consulta.

3.4 Painel de entrada/saída de arquivos de dados

O painel de E/S de Arquivos de Dados exibe a atividade de disco para cada arquivo de banco de dados no seu servidor, ajudando você a identificar gargalos de E/S e a entender os padrões de utilização do disco.

O painel de entrada/saída de arquivos de dados em SQL Server Monitor de atividades.

3.4.1 Compreendendo as métricas de E/S

O painel de E/S de Arquivos de Dados exibe diversas métricas para cada arquivo de banco de dados:

  • Base de dados: O nome do banco de dados.
  • Tipo de arquivo: Dados (incluindo tabelas e índices) ou Log (log de transações).
  • Nome lógico: O nome lógico do arquivo, conforme definido em SQL Server.
  • Leitura em MB/s: A taxa de dados lidos deste arquivo.
  • MB/s Escrito: A taxa de dados que estão sendo gravados neste arquivo.
  • Tempo de resposta (ms): Tempo médio de resposta para operações de entrada/saída neste arquivo.

Essas métricas são atualizadas no mesmo intervalo que o painel Visão geral, proporcionando visibilidade em tempo real da atividade do disco.

3.4.2 Identificação de gargalos de E/S

Fique atento a estes padrões que indicam problemas de desempenho de E/S:

  • Alto tempo de resposta: Tempos de resposta consistentemente acima de 15-20 ms sugerem subsistemas de disco lentos. Tempos de resposta acima de 50 ms indicam gargalos graves de E/S.
  • Carga desequilibrada: Se um arquivo de dados apresentar taxas de E/S significativamente maiores do que outros no mesmo banco de dados, você poderá se beneficiar adicionando arquivos adicionais para distribuir a carga.
  • Atividade excessiva do Tempdb: Altas taxas de E/S em arquivos tempdb geralmente indicam consultas que criam grandes conjuntos de resultados intermediários ou que utilizam planos de execução ineficientes.

3.4.3 Análise de Arquivos de Banco de Dados

Utilize o painel de E/S de Arquivos de Dados para entender como seus bancos de dados utilizam os recursos de disco:

  1. Expanda o painel de entrada/saída de arquivos de dados.
  2. Ordenar Leitura em MB/s or MB/seg Escrito Para identificar os arquivos mais ativos.
  3. Anote quaisquer arquivos com atividade consistentemente alta ou tempos de resposta longos.
  4. Compare essas informações com o painel Consultas Dispendiosas Recentes para identificar quais consultas estão gerando a carga de E/S.

Classifique por Lidos ou Gravados para identificar os arquivos mais ativos no Painel de E/S de Arquivos de Dados.

3.5 Painel de Consultas Recentes Caras

O painel "Consultas recentes com alto consumo de recursos" costuma ser o mais valioso para solucionar problemas de desempenho de aplicativos. Ele exibe as consultas que estão consumindo muitos recursos do servidor, ajudando você a identificar oportunidades de otimização.

O painel de consultas caras recentes em SQL Server Monitor de atividades.

3.5.1 Compreendendo as métricas de consulta

O Monitor de Atividades exibe diversas métricas para cada consulta dispendiosa:

  • Execuções/min: Quantas vezes a consulta foi executada no último minuto?
  • CPU (ms/seg): Tempo de CPU consumido por esta consulta por segundo.
  • Leituras físicas/seg: Número de leituras físicas de disco por segundo para esta consulta.
  • Escritas lógicas/seg: Número de gravações lógicas (no cache de buffer) por segundo.
  • Leituras lógicas/seg: Número de leituras lógicas (do cache de buffer) por segundo.
  • Duração média (ms): Tempo médio de execução para esta consulta.
  • Contagem de planos: Número de planos de execução em cache para esta consulta.

Essas métricas ajudam você a entender não apenas quais consultas são caras, mas também... porque São caros e precisam de muita frequência de uso.

3.5.2 Opções de classificação

Você pode classificar o painel Consultas caras recentes por diferentes métricas para encontrar diferentes tipos de problemas:

  1. Clique em qualquer cabeçalho de coluna para classificar por essa métrica.
  2. As estratégias de classificação comuns incluem:
    • Ordenar por CPU: Encontre as consultas que consomem mais tempo de processador.
    • Ordenar por execuções/min: Identifique as consultas que são executadas com muita frequência.
    • Ordenar por Leituras Físicas: Encontre as consultas que causam a maior quantidade de operações de E/S em disco.
    • Ordenar por duração média: Localize consultas de longa duração.

Ao solucionar um problema de desempenho, tente classificar por várias colunas para obter diferentes perspectivas. Uma consulta com uso moderado de CPU, mas com um número extremamente alto de execuções por minuto, pode ser a causa do problema.

3.5.3 Visualizando o texto da consulta

Para visualizar a instrução SQL real por trás de uma consulta complexa:

  1. Clique com o botão direito do mouse na linha da consulta no painel Consultas caras recentes.
  2. Selecionar Editar texto da consulta.
    Edite o texto da consulta no painel Consultas recentes de alto custo.
  3. Uma nova janela de consulta é aberta, exibindo a instrução SQL completa.
    Nova janela de consulta após selecionar "Editar texto da consulta" no painel Consultas caras recentes.

Isso permite examinar a lógica da consulta e identificar possíveis oportunidades de otimização. Em seguida, você pode copiar o texto da consulta para testar versões modificadas.

3.5.4 Análise de Planos de Execução

Os planos de execução mostram como. SQL Server Executa uma consulta, revelando ineficiências como índices ausentes ou tipos de junção inadequados:

  1. Clique com o botão direito do mouse na linha da consulta no painel Consultas caras recentes.
  2. Selecionar Mostrar Plano de Execução.
    Exibir o plano de execução no painel de consultas caras recentes.
  3. SQL Server O Management Studio exibe uma representação gráfica de como a consulta é executada.
    Plano de execução da consulta em uma nova janela.

Procure por operações que consomem grandes porcentagens do custo da consulta, avisos sobre estatísticas ou índices ausentes e operações inesperadas de varredura de tabela. Esses fatores geralmente indicam onde os esforços de otimização devem se concentrar.

3.5.5 Identificação de consultas problemáticas

Fique atento a esses padrões no painel Consultas caras recentes:

  • Execuções excessivas: Uma consulta executada milhares de vezes por minuto pode indicar um problema de consulta N+1, onde o código do aplicativo acessa o banco de dados dentro de um loop.
  • Leituras Físicas Elevadas: Consultas com altas taxas de leitura física estão acessando o disco com frequência, o que sugere a ausência de índices ou consultas mal escritas.
  • Alto consumo de CPU com baixa duração: Muitas consultas rápidas que consomem muita CPU em conjunto podem impactar o desempenho do servidor tanto quanto algumas consultas lentas.
  • Contagem de planos múltiplos: Consultas com muitos planos de execução podem sofrer com problemas de detecção de parâmetros ou consultas não parametrizadas podem causar inchaço do cache de planos.

4. Usando o Monitor de Atividade para solucionar problemas de desempenho

O Monitor de Atividade realmente se destaca quando usado de forma sistemática para diagnosticar e resolver problemas de desempenho. Esta seção aborda cenários comuns de solução de problemas e como abordá-los.

4.1 Diagnóstico de Execuções de Consultas Excessivas

Um dos problemas de desempenho mais comuns é a execução de consultas com muito mais frequência do que o necessário, geralmente devido a problemas de design da aplicação.

4.1.1 Identificação de consultas repetidas

Para identificar consultas que são executadas com muita frequência:

  1. Abra o Monitor de Atividade e expanda o Consultas caras recentes painel.
  2. Ordenar Execuções/min (execuções por minuto).
  3. Procure por consultas no topo com contagens de execução que pareçam excessivamente altas.
  4. Clique com o botão direito do mouse na consulta suspeita e selecione Editar texto da consulta para examinar a instrução SQL.

Por exemplo, se você observar uma instrução SELECT simples sendo executada 37,000 vezes por minuto, questione se o aplicativo realmente precisa chamar essa consulta com tanta frequência. A maioria das consultas executadas mais de alguns milhares de vezes por minuto justifica uma investigação.

4.1.2 Análise de Causa Raiz

A execução excessiva de consultas geralmente decorre destes problemas:

  • Problema de consulta N+1: O código do aplicativo recupera uma lista de itens e, em seguida, executa uma consulta separada para cada item a fim de obter os dados relacionados. Isso cria N consultas adicionais, onde N é o número de itens.
  • Cache ausente: O aplicativo consulta o banco de dados em busca de dados que raramente mudam, em vez de armazená-los em cache na memória do aplicativo.
  • Loops de sondagem: O código consulta repetidamente o banco de dados, verificando alterações de estado, em vez de usar notificações de alteração ou filas de mensagens.
  • Ineficiência do ORM: O Entity Framework e ferramentas similares às vezes geram padrões de consulta ineficientes quando os desenvolvedores não entendem como seu código se traduz em SQL.

Para determinar a causa raiz, rastreie a consulta até o código do aplicativo. Observe o Aplicação e Entrar colunas no painel Processos quando a consulta é executada. Você também pode clicar com o botão direito do mouse no processo e selecionar Rastrear processo em SQL Server Profiler para ver o padrão de chamadas.

4.1.3 Soluções e Melhores Práticas

Após identificar execuções excessivas de consultas, considere estas soluções:

  • Processamento em lote: Modifique o código do aplicativo para recuperar vários itens em uma única consulta usando junções ou cláusulas IN, em vez de executar consultas separadas em um loop.
  • Cache de resultados: Armazena em cache, na memória da aplicação, dados acessados ​​frequentemente e que mudam com pouca frequência, com tempos de expiração adequados.
  • Carregamento ansioso: Configure os ORMs para usar estratégias de carregamento antecipado que buscam dados relacionados em menos consultas, tornando-as mais eficientes.
  • Parametrização de consultas: Garanta que as consultas usem parâmetros em vez de concatenar valores, o que melhora a reutilização do cache de planos e reduz a sobrecarga de compilação.

4.2 Investigando problemas de bloqueio

O bloqueio ocorre quando uma sessão mantém bloqueios que impedem outras sessões de prosseguir. Isso se manifesta como lentidão nas respostas dos aplicativos e usuários frustrados.

4.2.1 Identificação de Cadeias de Bloqueio

Para detectar e analisar bloqueios:

  1. Abra o Monitor de Atividade e expanda o Processos painel.
  2. Procure por sessões com valores em Bloqueado por coluna—estes estão aguardando bloqueios mantidos por outras sessões.
  3. Encontre sessões com '1' no Bloqueador de Cabeça coluna—esta é a causa principal do bloqueio das cadeias.
  4. Note o ID da sessão do bloqueador de cabeça.
  5. Clique com o botão direito do mouse na sessão de bloqueio de cabeça e selecione Detalhes para ver qual comando está sendo executado.

Compreender a cadeia de bloqueio é crucial. O bloqueador principal é a sessão que você precisa investigar, e não as sessões bloqueadas a jusante.

4.2.2 Compreendendo os Tipos de Fechaduras

O Tipo de espera A coluna no painel Processos indica o tipo de bloqueio que as sessões estão aguardando:

  • LCK_M_X: Aguardando bloqueio exclusivo, geralmente causado por operações de UPDATE, DELETE ou INSERT.
  • LCK_M_S: A espera por bloqueio compartilhado ocorre geralmente quando instruções SELECT aguardam a liberação de bloqueios exclusivos.
  • LCK_M_U: Aguardar bloqueio de atualização é um tipo de bloqueio intermediário usado durante as atualizações.
  • LCK_M_IX: Aguardando bloqueio exclusivo de intenção, o que indica disputa de bloqueio em nível de página ou de linha.

O Recurso de espera A coluna mostra qual objeto do banco de dados está sendo bloqueado, ajudando você a entender qual tabela ou índice está envolvido na disputa.

4.2.3 Resolvendo problemas de bloqueio

Depois de identificar a sessão que está bloqueando o processo e o que ela está fazendo, você tem várias opções:

  1. Aguarde a conclusão: Se o processo que está bloqueando a execução estiver executando uma consulta legítima que será concluída em breve, talvez seja melhor deixá-la terminar normalmente.
  2. Encerrar a sessão: Se o bloqueador principal estiver travado ou executando uma consulta que deveria ser cancelada:
    • Clique com o botão direito do mouse na sessão no painel Processos.
    • Selecionar Kill Process.
    • Confirme a ação na caixa de diálogo.
  3. Otimizar consultas: Se o bloqueio ocorrer repetidamente com as mesmas consultas, otimize-as para reduzir a duração do bloqueio.
  4. Ajustar os níveis de isolamento: Considere usar o READ COMMITTED SNAPSHOT ISOLATION para reduzir o bloqueio em cargas de trabalho com grande volume de leitura.
  5. Ajuste de índice: Adicione índices para acelerar as consultas, reduzindo o tempo que elas mantêm os bloqueios.

4.3 Analisando o alto uso da CPU

Quando o painel Visão geral mostra o tempo de processamento consistentemente em ou próximo de 100%, você precisa identificar quais consultas são responsáveis ​​e determinar se elas podem ser otimizadas.

4.3.1 Identificação de consultas que consomem muitos recursos da CPU

Para encontrar consultas que consomem CPU em excesso:

  1. Abra o Consultas caras recentes painel.
  2. Ordenar CPU (ms/seg) Exibir as consultas que utilizam mais tempo de CPU.
  3. Examine as principais consultas da lista.
  4. Clique com o botão direito do mouse nas consultas que consomem muita CPU e selecione Editar texto da consulta para visualizar a instrução SQL.
  5. Selecionar Mostrar Plano de Execução Para entender como a consulta é executada.

Preste atenção não apenas ao uso da CPU por consulta individual, mas também ao... Execuções/min coluna. Uma consulta que utiliza uma quantidade moderada de CPU por execução, mas que é executada milhares de vezes por minuto, pode ser a que mais consome CPU.

4.3.2 Técnicas de Otimização de Consultas

Algumas abordagens comuns para reduzir o consumo de CPU incluem:

  • Adicionar índices ausentes: As operações de indexação utilizam muito menos CPU do que as varreduras de tabela. Procure por recomendações de índices ausentes nos planos de execução.
  • Reescrever consultas ineficientes: Substitua os cursores por operações baseadas em conjuntos, elimine funções desnecessárias nas cláusulas WHERE e remova junções redundantes.
  • Atualizar estatísticas: Estatísticas desatualizadas causam SQL Server Para escolher planos de execução ineficientes, execute o comando UPDATE STATISTICS nas tabelas afetadas.
  • Reduzir o volume de dados: Adicione cláusulas WHERE para filtrar dados mais cedo, use TOP ou OFFSET/FETCH para paginação e evite SELECT *.
  • Corrigir detecção de parâmetros: Use OPTION (RECOMPILE), dicas de consulta ou guias de plano quando a detecção de parâmetros causar problemas.

4.4 Investigando Problemas de Memória

A pressão na memória pode fazer com que as consultas sejam gravadas em disco, degradando significativamente o desempenho. O Monitor de Atividade ajuda você a identificar operações que consomem muita memória.

4.4.1 Compreendendo as métricas de memória

O Uso de memória A coluna no painel Processos mostra a memória alocada para cada sessão em kilobytes. O alto uso de memória por uma única sessão geralmente indica:

  • Operações de classificação ou hash de grande porte que não cabiam na memória inicialmente alocada.
  • Consultas que recuperam conjuntos de resultados enormes
  • Paralelismo excessivo cria muitas cópias de operadores de plano de execução.
  • Vazamentos de memória em procedimentos ou funções armazenadas do CLR

O painel "Esperas de Recursos" pode exibir "Esperas de memória" quando as consultas não conseguem obter concessões de memória suficientes e precisam aguardar até que a memória fique disponível.

4.4.2 Identificação de consultas que consomem muita memória

Para encontrar as consultas que causam pressão na memória:

  1. De acordo com o relatório Processos painel, classificar por Uso de memória Para visualizar as sessões que consomem mais memória.
  2. Sessões de clique com o botão direito do mouse com alto uso de memória e seleção Detalhes para visualizar suas consultas.
  3. De acordo com o relatório Consultas caras recentes painel, procure por consultas com alto Leituras lógicas or Escritas lógicas, pois estes fatores geralmente estão correlacionados com o uso da memória.
  4. Examine os planos de execução dos operadores Sort e Hash Match, que utilizam concessões de memória.

Consultas que exibem avisos de "Concessão de Memória" em planos de execução ou avisos de excesso de memória indicam problemas de pressão de memória.

4.5 Detecção de problemas de desempenho de aplicativos

Quando os usuários relatam lentidão na resposta do aplicativo, o Monitor de Atividades ajuda a determinar se o banco de dados é o gargalo.

4.5.1 Correlação do Monitor de Atividade com Problemas do Aplicativo

Para investigar a lentidão do aplicativo:

  1. Anote o horário exato em que os usuários relatam os problemas e os aplicativos afetados.
  2. Abra o Monitor de Atividade e verifique o Visão geral painel para picos de recursos naquele momento.
  3. De acordo com o relatório Processos painel, filtrar por Aplicação Exibir apenas as conexões do aplicativo afetado.
  4. Procure por alto Tempo de espera valores que indicam atrasos no banco de dados.
  5. Verifique o Consultas caras recentes painel para consultas desse aplicativo que consomem recursos significativos.

Se o banco de dados não apresentar nenhuma atividade incomum, mas os usuários estiverem enfrentando lentidão, o problema provavelmente está no código do aplicativo, na latência da rede ou no desempenho do lado do cliente.

4.5.2 Identificação de padrões de aplicação ineficientes

O Monitor de Atividades revela diversos antipadrões no design de aplicativos:

  • Aplicativos de bate-papo: Muitas consultas pequenas em vez de menos consultas mais eficientes. Identificado por um alto número de conexões e numerosas consultas simples em Consultas Recentes Caras.
  • Consultas N+1: Uma consulta seguida de N consultas adicionais para dados relacionados. Apresenta-se como uma consulta simples com um número extremamente alto de execuções por minuto.
  • Grandes conjuntos de resultados: Aplicações que recuperam muito mais dados do que o necessário. Procure por alto Leituras lógicas combinado com consultas SELECT * simples.
  • Tempos limite ausentes: Aplicativos que não definem tempos limite para comandos podem deixar conexões abertas indefinidamente, visíveis como sessões de longa duração no painel Processos.

5. Métodos Alternativos: Obtendo Dados do Monitor de Atividades via T-SQL

Embora o Monitor de Atividades ofereça uma interface gráfica prática, às vezes é necessário obter informações equivalentes programaticamente ou criar soluções de monitoramento personalizadas.

5.1 Utilizando Visões de Gerenciamento Dinâmico (DMVs)

SQL Server Expõe informações de atividade por meio de visualizações de gerenciamento dinâmico, que o Monitor de Atividades consulta em segundo plano.

5.1.1 Principais DMVs para Monitoramento de Atividades

Os DMVs mais importantes para replicar a funcionalidade do Monitor de Atividades incluem:

  • solicitações_exec_sys.dm: Exibe as solicitações em execução no momento, com informações sobre CPU, E/S e tempo de espera.
  • sys.dm_exec_sessions: Contém informações de nível de sessão, como nome de login, nome do host e nome do programa.
  • sys.dm_os_wait_stats: Fornece estatísticas cumulativas de espera para toda a instância.
  • sys.dm_exec_query_stats: Contém estatísticas de desempenho agregadas para consultas em cache.
  • sys.dm_io_virtual_file_stats: Retorna estatísticas de entrada/saída para arquivos de dados e de log.
  • sys.dm_exec_sql_text: Recupera o texto SQL para um determinado sql_handle ou plan_handle.
  • sys.dm_exec_query_plan: Retorna o plano de execução para uma consulta em cache.

5.1.2 Exemplos de consultas para informações de processo

Para replicar a funcionalidade do painel Processos, você pode consultar:

SELECT 
    s.session_id AS [Session ID],
    CASE WHEN s.is_user_process = 1 THEN 'Yes' ELSE 'No' END AS [User Process],
    s.login_name AS [Login],
    ISNULL(CAST(r.blocking_session_id AS VARCHAR), '') AS [Blocked By],
    CASE 
        WHEN r2.session_id IS NOT NULL 
        AND (r.blocking_session_id = 0 OR r.session_id IS NULL) 
        THEN '1' 
        ELSE '' 
    END AS [Head Blocker],
    ISNULL(DB_NAME(r.database_id), '') AS [Database],
    ISNULL(t.task_state, '') AS [Task State],
    ISNULL(r.command, '') AS [Command],
    r.cpu_time AS [CPU Time],
    r.total_elapsed_time AS [Elapsed Time],
    r.wait_time AS [Wait Time],
    r.wait_type AS [Wait Type],
    s.memory_usage * 8 AS [Memory Use (KB)],
    s.host_name AS [Host Name],
    s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id
WHERE s.session_id != @@SPID
ORDER BY s.session_id;

5.1.3 Exemplos de consultas para estatísticas de espera

Para visualizar estatísticas de espera semelhantes ao painel de Esperas de Recursos:

SELECT TOP 10
    wait_type AS [Wait Type],
    wait_time_ms / 1000.0 AS [Wait Time (sec)],
    waiting_tasks_count AS [Waiting Tasks],
    wait_time_ms / NULLIF(waiting_tasks_count, 0) AS [Avg Wait Time (ms)]
FROM sys.dm_os_wait_stats
WHERE wait_type NOT LIKE '%SLEEP%'
    AND wait_type NOT LIKE '%IDLE%'
    AND wait_type NOT LIKE '%QUEUE%'
ORDER BY wait_time_ms DESC;

5.2 Usando sp_WhoIsActive

sp_WhoIsActive é um poderoso procedimento armazenado criado pela comunidade que fornece informações mais detalhadas do que o Monitor de Atividades em um único conjunto de resultados.

5.2.1 Instalando sp_WhoIsActive

Para instalar sp_WhoIsActive:

  1. Baixe a versão mais recente de http://whoisactive.com.
  2. O arquivo para download é um script SQL contendo a definição do procedimento.
  3. Abra o script em SQL Server Estúdio de Gestão.
  4. Conecte-se ao seu SQL Server instância.
  5. Execute o script para criar o procedimento no banco de dados mestre.
  6. Conceda permissões de execução aos usuários apropriados.

Como o sp_WhoIsActive está instalado no master, ele é acessível a partir de qualquer contexto de banco de dados.

5.2.2 Exemplos básicos de uso

A maneira mais simples de usar sp_WhoIsActive é:

EXEC sp_WhoIsActive;

Isso retorna um conjunto de resultados mostrando todas as sessões ativas com suas consultas, tipos de espera, informações de bloqueio e uso de recursos.

Para uma amostra de 10 segundos que mostra a atividade durante esse período:

EXEC sp_WhoIsActive @delta_interval = 10;

Isso calcula as variações em métricas como CPU e leituras, mostrando o que aconteceu durante esses 10 segundos.

5.2.3 Parâmetros Avançados

sp_WhoIsActive suporta diversos parâmetros para personalização:

  • @filtro: Filtre os resultados para sessões, bases de dados ou logins específicos.
  • @filter_type: Especifique a que se aplica o filtro (sessão, banco de dados, login, etc.).
  • @get_plans: Incluir planos de execução nos resultados (definir como 1).
  • @get_locks: Exibir informações detalhadas da fechadura (definido como 1).
  • @get_transaction_info: Exibir detalhes da transação (definido como 1).
  • @sort_order: Ordene os resultados por diferentes métricas (CPU, leituras, duração, etc.).
  • @destination_table: Insira os resultados em uma tabela para acompanhamento histórico.

Exemplo mostrando planos classificados por CPU:

EXEC sp_WhoIsActive 
    @get_plans = 1,
    @sort_order = '[CPU] DESC';

5.3 Utilizando Procedimentos Armazenados do Sistema

SQL Server Inclui procedimentos armazenados tradicionais para monitoramento de atividades, embora forneçam menos informações do que os DMVs ou o Monitor de Atividades.

5.3.1 sp_who e sp_who2

O procedimento sp_who exibe informações básicas da sessão:

EXEC sp_who;

O procedimento sp_who2 fornece um pouco mais de detalhes:

EXEC sp_who2;

Ambos os procedimentos exibem IDs de sessão, nomes de login, tempo de CPU e informações de bloqueio. No entanto, eles não possuem o nível de detalhamento disponível nas DMVs (Diretrizes de Gerenciamento de Dispositivos) ou no Monitor de Atividade. São mais úteis para verificações rápidas quando você precisa de informações mínimas com urgência.

5.3.2 Outros Procedimentos Úteis do Sistema

Os procedimentos adicionais do sistema para monitoramento incluem:

  • sp_lock: Exibe informações de bloqueio (obsoleto; use sys.dm_tran_locks em vez disso).
  • sp_monitor: Exibe estatísticas sobre SQL Server atividade.
  • sp_help: Exibe definições de objetos e metadados.
  • DBCC SQLPERF: Exibe o uso do espaço de registro de transações e as estatísticas de espera.

5.4 Criação de scripts de monitoramento personalizados

Para ambientes que exigem monitoramento específico além do que o Monitor de Atividades oferece, você pode criar soluções personalizadas usando DMVs.

5.4.1 Script Equivalente ao Monitor de Atividades Completo

Aqui está um script completo que replica a maior parte da funcionalidade do Monitor de Atividade:

-- Processes Information
SELECT 
    s.session_id AS [Session ID],
    CONVERT(CHAR(1), s.is_user_process) AS [User Process],
    s.login_name AS [Login],
    ISNULL(CONVERT(VARCHAR, w.blocking_session_id), '') AS [Blocked By],
    CASE 
        WHEN r2.session_id IS NOT NULL 
        AND (r.blocking_session_id = 0 OR r.session_id IS NULL) 
        THEN '1' 
        ELSE '' 
    END AS [Head Blocker],
    ISNULL(DB_NAME(r.database_id), N'') AS [Database],
    ISNULL(t.task_state, N'') AS [Task State],
    ISNULL(r.command, N'') AS [Command],
    SUBSTRING(st.text, (r.statement_start_offset/2) + 1,
        ((CASE r.statement_end_offset 
            WHEN -1 THEN DATALENGTH(st.text)
            ELSE r.statement_end_offset 
        END - r.statement_start_offset) / 2) + 1) AS [Statement],
    st.text AS [Command Text],
    r.cpu_time AS [CPU Time (ms)],
    r.total_elapsed_time / 1000 AS [Elapsed Time (sec)],
    r.wait_time AS [Wait Time (ms)],
    r.wait_type AS [Wait Type],
    r.wait_resource AS [Wait Resource],
    s.memory_usage * 8 AS [Memory Use (KB)],
    s.host_name AS [Host Name],
    c.client_net_address AS [Net Address],
    s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests w ON r.session_id = w.blocking_session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id 
    AND r.request_id = t.request_id
LEFT JOIN sys.dm_exec_connections c ON s.session_id = c.session_id
OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) st
WHERE s.session_id != @@SPID
ORDER BY s.session_id;

-- Recent Expensive Queries
SELECT TOP 20
    qs.execution_count / 
        DATEDIFF(MINUTE, qs.creation_time, GETDATE()) AS [Executions/min],
    qs.total_worker_time / 1000 AS [CPU Time (ms)],
    qs.total_physical_reads AS [Physical Reads],
    qs.total_logical_writes AS [Logical Writes],
    qs.total_logical_reads AS [Logical Reads],
    qs.total_elapsed_time / qs.execution_count / 1000 AS [Avg Duration (ms)],
    SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
        ((CASE qs.statement_end_offset 
            WHEN -1 THEN DATALENGTH(st.text)
            ELSE qs.statement_end_offset 
        END - qs.statement_start_offset) / 2) + 1) AS [Query Text]
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
WHERE qs.execution_count > 0
ORDER BY qs.total_worker_time DESC;

5.4.2 Automatizando o monitoramento com tarefas do SQL Agent

Você pode agendar scripts de monitoramento personalizados usando SQL Server Agente:

  1. Crie uma tabela para armazenar os resultados do monitoramento.
  2. Modifique seu script de monitoramento para inserir os resultados nesta tabela.
  3. In SQL Server Estúdio de Gestão, expandir SQL Server Agente no Explorador de Objetos.
  4. Botão direito do mouse Empregos e selecione Novo emprego.
  5. Configure a tarefa para executar seu script de monitoramento em intervalos regulares.
  6. Configure alertas ou relatórios com base nos dados coletados.

Essa abordagem permite o rastreamento histórico e a análise de tendências, algo que o Monitor de Atividades não oferece.

6. Limitações e Considerações do Monitor de Atividades

Embora o Monitor de Atividade seja valioso, entender suas limitações ajuda você a usá-lo adequadamente e a complementá-lo com outras ferramentas quando necessário.

6.1 Compreendendo a sobrecarga do Monitor de Atividades

O Monitor de Atividade não é gratuito — ele consome recursos do servidor para coletar e exibir informações. Compreender essa sobrecarga ajuda você a usá-lo de forma responsável.

6.1.1 Impacto nos recursos do servidor

O Monitor de Atividade executa consultas nas DMVs do sistema sempre que é atualizado. Essas consultas consomem CPU, geram leituras lógicas e podem bloquear brevemente as tabelas do sistema. Em servidores com alta carga, essa sobrecarga pode afetar o desempenho.

Os painéis Processos e Consultas Recentes Custosas são particularmente dispendiosos, pois precisam examinar DMVs potencialmente grandes e armazenar tabelas em cache. Em servidores com milhares de planos de consulta em cache, a atualização de Consultas Recentes Custosas pode levar vários segundos.

A documentação da Microsoft alerta que intervalos de atualização inferiores a 10 segundos podem afetar consideravelmente o desempenho do servidor, especialmente em sistemas já sobrecarregados.

6.1.2 Melhores Práticas para Intervalo de Atualização

Escolha os intervalos de atualização adequados à sua situação:

  • 1-5 segundos: Somente para resolução imediata de problemas críticos em servidores com baixa carga. Não deixe o Monitor de Atividade em execução nesses intervalos.
  • 10 segundos (padrão): Adequado para a maioria dos cenários de resolução de problemas e monitoramento geral.
  • 30-60 segundos: Melhor opção para servidores de produção sob carga pesada ou quando o monitoramento é realizado por períodos prolongados.
  • Atualização manual apenas: Para situações em que você deseja verificar o estado atual ocasionalmente, sem sondagens contínuas.

Feche sempre o Monitor de Atividade ao terminar a investigação. Não o deixe em execução continuamente, especialmente com várias instâncias de usuários diferentes.

6.2 Problemas de agrupamento de tipos de espera

A abordagem do Monitor de Atividades para categorizar as esperas, embora simplifique a visualização, pode obscurecer informações importantes de diagnóstico.

6.2.1 Como os grupos de monitoramento de atividades aguardam

SQL Server O Monitor de Atividades rastreia centenas de tipos de espera distintos, cada um indicando um recurso ou condição específica. Ele agrupa esses tipos em categorias amplas como "Buffer Latch", "Lock" e "Memória".

Por exemplo, a categoria “Buffer Latch” inclui PAGELATCH_SH, PAGELATCH_UP, PAGELATCH_EX e vários outros tipos de espera específicos. Embora todos estejam relacionados ao acesso à página, eles têm causas e soluções diferentes.

A Microsoft não documenta exatamente quais tipos de espera correspondem a quais categorias, o que dificulta entender o que você realmente está vendo.

6.2.2 Tipos de espera ausentes

O Monitor de Atividades não exibe todos os tipos de espera. Principalmente, ele costuma omitir as esperas CXPACKET, que indicam a execução paralela de consultas. As esperas CXPACKET são comuns e geralmente não causam problemas, mas saber que elas estão presentes ajuda a entender as características da carga de trabalho.

Quando o Monitor de Atividade mostra "Buffer Latch" como o principal processo em espera, mas outras ferramentas mostram CXPACKET como o principal, a discrepância se deve à lógica de filtragem e agrupamento do Monitor de Atividade.

6.2.3 Por que tipos específicos de espera são importantes

Conhecer o tipo específico de espera é importante para a resolução de problemas:

  • PANELATCH_EX: Frequentemente indica contenção no tempdb devido à alocação de páginas. A solução envolve adicionar mais arquivos de dados ao tempdb.
  • PANELATCH_SH: Pode indicar páginas muito acessadas nas tabelas de usuários. A solução envolve particionamento ou reorganização de índices.
  • PAGELATCH_UP: Comum durante atualizações. Pode indicar funcionamento normal em vez de um problema.

O Monitor de Atividades agrupa todos esses itens sob o termo "Buffer Latch", dificultando o diagnóstico. Ferramentas como sp_WhoIsActive e consultas ao DMV mostram tipos de espera específicos.

6.3 Precisão e atualidade dos dados

O Monitor de Atividade oferece uma visão quase em tempo real, mas "quase" é a palavra-chave. Compreender seu método de coleta de dados ajuda você a interpretar os resultados corretamente.

6.3.1 Instantâneo vs. Monitoramento Contínuo

O Monitor de Atividade exibe instantâneos pontuais capturados a cada intervalo de atualização. Eventos que ocorrem entre os instantâneos não são registrados. Se uma consulta for executada por 2 segundos e você atualizar a cada 10 segundos, poderá vê-la apenas uma vez ou nenhuma vez, dependendo do intervalo de tempo.

Isso significa que o Monitor de Atividade se destaca na detecção de problemas persistentes (bloqueios que duram minutos, uso constante e elevado da CPU), mas pode não detectar problemas transitórios (breves impasses, picos ocasionais de consultas).

6.3.2 Agregação e Amostragem

O painel Consultas caras recentes exibe dados agregados desde que os planos de consulta entraram no cache. Duas consultas idênticas com valores de parâmetros diferentes aparecem como uma única linha se compartilharem um plano. Essa agregação pode mascarar problemas com combinações específicas de parâmetros (problemas de detecção de parâmetros).

O painel "Esperas de Recursos" calcula as taxas comparando instantâneos. Se as estatísticas de espera forem redefinidas entre os instantâneos (raro, mas possível), as taxas calculadas podem estar incorretas.

6.4 Quando NÃO usar o Monitor de Atividade

O Monitor de Atividades não é adequado para todos os cenários de monitoramento. Saiba reconhecer quando ferramentas alternativas são mais adequadas.

6.4.1 Requisitos de Análise Histórica

O Monitor de Atividades exibe apenas a atividade atual ou recente. Ele não armazena dados históricos. Se você precisar analisar tendências ao longo de dias ou semanas, comparar o desempenho atual com os valores de referência ou gerar relatórios sobre padrões de desempenho, o Monitor de Atividades não é suficiente.

Para análise histórica, utilize SQL ServerO sistema oferece recursos como o Painel de Desempenho integrado, Eventos Estendidos com alvos de arquivo ou soluções de monitoramento de terceiros.

6.4.2 Necessidades de Estatísticas Detalhadas de Espera

Quando você precisa de informações precisas sobre o tipo de espera para ajustes avançados, o agrupamento e a filtragem do Monitor de Atividades o tornam inadequado. Use consultas DMV diretamente ou sp_WhoIsActive em vez disso.

Para uma análise completa das estatísticas de espera, consulte diretamente a tabela sys.dm_os_wait_stats e filtre manualmente as esperas benignas.

6.4.3 Considerações sobre o servidor de produção

Em servidores de produção sob carga elevada, a sobrecarga do Monitor de Atividades pode ser problemática. Vários administradores de banco de dados não devem executar o Monitor de Atividades simultaneamente no mesmo servidor.

Para monitoramento de produção, considere alternativas leves, como snapshots de DMV agendados armazenados em um banco de dados de monitoramento, ou use roteamento somente leitura para monitorar réplicas secundárias em configurações Always On.

7. Melhores práticas para usar o Monitor de atividades

Seguir as melhores práticas garante que você obtenha o máximo valor do Monitor de Atividades, minimizando os impactos negativos em seus servidores.

7.1 Quando usar o Monitor de Atividade

O Monitor de Atividades se destaca em cenários específicos. Use-o quando seus pontos fortes estiverem alinhados às suas necessidades.

7.1.1 Problemas de desempenho em tempo real

O Monitor de Atividades é ideal quando os usuários estão enfrentando problemas e você precisa diagnosticar a causa imediatamente. A visualização em tempo real ajuda você a ver o que está acontecendo agora.

Ao receber uma ligação informando que "o aplicativo está lento", abrir o Monitor de Atividades deve ser uma das suas primeiras providências. Você pode determinar rapidamente se o banco de dados está ocupado, bloqueado ou ocioso.

7.1.2 Investigação de Lentidão do Aplicativo

Quando um aplicativo específico para de responder, o Monitor de Atividades ajuda você a determinar se a causa são problemas no banco de dados. Filtre o painel Processos pelo nome do aplicativo para ver apenas a atividade do banco de dados desse aplicativo.

Se o aplicativo não apresentar nenhuma atividade no banco de dados enquanto os usuários relatam problemas, o problema está em outro lugar na pilha de protocolos. Se você observar bloqueios extensos ou consultas dispendiosas, encontrou o culpado.

7.1.3 Verificações rápidas de integridade

O Monitor de Atividades oferece um excelente painel para verificações rápidas de integridade durante a administração de rotina. Abra-o, dê uma olhada nos gráficos de Visão Geral e verifique se nada parece anormal.

Essa verificação rápida leva segundos e pode revelar problemas antes que se tornem críticos. Incorpore-a à sua rotina diária.

7.2 Configurações ideais

Configurar o Monitor de Atividades adequadamente melhora tanto sua utilidade quanto seu consumo de recursos.

7.2.1 Intervalos de atualização recomendados

Ajuste o intervalo de atualização à sua finalidade:

  • Solução de problemas ativa: Dez segundos proporcionam boa capacidade de resposta com uma sobrecarga razoável.
  • Monitoramento prolongado: Um intervalo de 30 a 60 segundos reduz o impacto no servidor durante períodos de observação mais longos.
  • Diagnóstico de problemas críticos: 5 segundos oferece alta precisão quando cada segundo conta, mas use por um curto período.
  • Verificações de saúde regulares: Atualização manual (intervalo de 1 hora) quando você não estiver assistindo ativamente.

Lembre-se de fechar o Monitor de Atividade ao terminar. Configurar um intervalo longo e esquecer-se dele desperdiça recursos do servidor.

7.2.2 Estratégias de Filtragem

Use filtros para se concentrar em informações relevantes e reduzir a carga cognitiva:

  • Filtrar processos por banco de dados Para visualizar apenas a atividade em bancos de dados específicos.
  • Filtrar por Entrar Para rastrear a atividade de um usuário específico.
  • Filtrar por Estado da Tarefa = EXECUTANDO para ocultar sessões ociosas.
  • Filtrar por Aplicação Isolar o tráfego de programas específicos.
  • Mostrar apenas os campos não vazios em Bloqueado por Para visualizar apenas situações de bloqueio.

7.2.3 Seleção e classificação de colunas

Desenvolver uma abordagem sistemática para a revisão dos dados do Monitor de Atividades:

  1. Comece com a Visão Geral: Analise os gráficos em busca de picos ou anomalias óbvias.
  2. Verificar processos em busca de bloqueios: Ordene por ID da sessão e, em seguida, procure os valores "Bloqueado por".
  3. Tempo de espera para revisão de recursos: Classifique por Tempo de Espera Cumulativo para identificar gargalos de recursos.
  4. Analisar consultas dispendiosas: Classifique por diferentes métricas (CPU, execuções, leituras) para encontrar diferentes tipos de problemas.
  5. Verifique no painel de E/S: Confirme se as consultas com uso intensivo de E/S estão correlacionadas com alta atividade de disco.

7.3 Integração com outras ferramentas

O Monitor de Atividades funciona melhor como parte de um conjunto de ferramentas mais amplo do que como uma solução independente.

7.3.1 Utilizando com SQL Server Profiler

Monitor de atividades e SQL Server Os Profilers se complementam bem. Quando você identificar uma sessão problemática no Monitor de Atividade, clique com o botão direito do mouse sobre ela e selecione Rastrear processo em SQL Server Profiler.

Isso inicia o Profiler com filtros já configurados para capturar apenas a atividade dessa sessão. Você vê a sequência completa de instruções executadas, informações de tempo e mensagens de erro — detalhes que o Monitor de Atividade não fornece.

Para saber mais sobre SQL Server Para obter informações sobre os recursos do Profiler e as técnicas avançadas de rastreamento, consulte nosso compreensivo SQL Server Guia do Profiler.

7.3.2 Complementando com Eventos Prolongados

O recurso Eventos Estendidos oferece monitoramento detalhado e com baixa sobrecarga, capturando informações que o Monitor de Atividades não detecta. Crie sessões de Eventos Estendidos para rastrear eventos específicos, como impasses (deadlocks), consultas de longa duração ou recompilações excessivas.

Utilize o Monitor de Atividades para investigações imediatas e os Eventos Estendidos para monitoramento contínuo e análise histórica. As duas ferramentas atendem a necessidades diferentes.

Para saber mais sobre SQL Server Para obter informações sobre recursos de eventos estendidos e técnicas avançadas de monitoramento, consulte nosso compreensivo SQL Server Guia de Eventos Prolongados.

7.3.3 Soluções de monitoramento de terceiros

Ferramentas comerciais como SolarWinds Database Performance Analyzer, Redgate SQL Monitor e Quest Spotlight oferecem recursos que o Activity Monitor não possui: alertas, tendências históricas, planejamento de capacidade e diagnósticos automatizados.

Essas ferramentas são adições valiosas ao Monitor de Atividades, não substituem o recurso. O Monitor de Atividades continua sendo útil para verificações e investigações rápidas, mesmo com a disponibilidade de ferramentas de monitoramento mais sofisticadas.

7.4 Erros comuns a evitar

Compreender os erros mais comuns cometidos no Monitor de Atividades ajuda você a usá-lo com mais eficácia.

7.4.1 Deixar o Monitor de Atividade em Execução Contínua

O erro mais comum é abrir o Monitor de Atividade e deixá-lo aberto indefinidamente. Isso desperdiça recursos do servidor e oferece pouco benefício, já que você não está monitorando ativamente a atividade.

Feche o Monitor de Atividades quando não estiver usando-o ativamente. Se precisar de monitoramento contínuo, implemente uma solução de monitoramento adequada com coleta de dados agendada.

7.4.2 Depender excessivamente apenas do Monitor de Atividades

O Monitor de Atividade fornece uma perspectiva sobre a integridade do servidor. Não confie exclusivamente nele. Complemente com o Monitor de Desempenho do Windows para métricas em nível de sistema operacional, Eventos Estendidos para rastreamento detalhado e análise do plano de execução para otimização de consultas.

O Monitor de Atividades ajuda a identificar problemas, mas resolvê-los geralmente exige ferramentas adicionais e uma análise mais aprofundada.

Saiba mais sobre o SQL Server monitor de desempenho em nosso guia completo.

7.4.3 Ignorando as tendências históricas

O Monitor de Atividades mostra o estado atual, mas os problemas de desempenho geralmente apresentam padrões visíveis apenas ao longo do tempo. Implemente a coleta de dados históricos para que você possa comparar as métricas atuais com as linhas de base e identificar tendências.

Sem contexto histórico, você pode não perceber que o uso "normal" da CPU hoje é 30% maior do que a média do mês passado, indicando uma degradação gradual.

8. Solução de problemas do Monitor de Atividades

O próprio Monitor de Atividades às vezes apresenta problemas. Saber como solucionar esses problemas evita frustrações.

8.1 O Monitor de Atividades não abre ou não exibe dados.

Quando o Monitor de Atividade abre, mas exibe painéis em branco ou não abre de jeito nenhum, diversos fatores podem ser responsáveis.

8.1.1 Questões de Permissão

A causa mais comum de problemas no Monitor de Atividade é a falta de permissões. Para verificar e resolver:

  1. Verifique as permissões do seu servidor:
    SELECT * FROM fn_my_permissions(NULL, 'SERVER')
    WHERE permission_name = 'VIEW SERVER STATE';
    
  2. Se nenhuma linha for retornada, você não tem a permissão VIEW SERVER STATE.
  3. Solicite a um administrador do servidor que conceda essa permissão:
    USE master;
    GRANT VIEW SERVER STATE TO [YourLogin];
    
  4. Feche e abra novamente o Monitor de Atividades após conceder as permissões.

Problemas de compatibilidade de versão 8.1.2

Usando uma versão antiga de SQL Server Management Studio para conectar-se a uma versão mais recente SQL Server A versão pode causar falhas no Monitor de Atividades. A ferramenta pode não reconhecer novos tipos de espera ou colunas de visualização do sistema.

Use sempre uma versão do SSMS igual ou mais recente que a sua. SQL Server versão. A Microsoft fornece a versão mais recente do SSMS como um download gratuito separado de SQL Server si.

8.1.3 Problemas de firewall e rede

O Monitor de Atividades requer conectividade com o SQL Server instância em portas padrão (1433 por padrão). Se você conseguir se conectar pelo Explorador de Objetos, mas o Monitor de Atividades falhar, as regras do firewall podem estar bloqueando conexões específicas.

Verifique se o seu cliente consegue entrar em contato com o SQL Server Verifique se o computador está em todas as portas necessárias. Verifique o Firewall do Windows e quaisquer firewalls de rede entre o cliente e o servidor.

8.2 Monitor de Atividade Pausado Permanentemente

Um problema comum, particularmente em SQL Server Em 2019, o Monitor de Atividade abriu em estado de pausa e se recusou a retomar a operação.

8.2.1 Compreendendo o Estado de Pausa

Quando o Monitor de Atividade é pausado, todos os painéis exibem o status "Pausado" com um botão de retomar que pode não funcionar. Isso impede que você veja qualquer atividade do servidor.

O estado de pausa geralmente ocorre devido a problemas de permissão, restrições de conexão remota ou bugs da versão do SSMS, e não por uma ação de pausa intencional.

8.2.2 Causas comuns

O Monitor de Atividades pode entrar em estado de pausa permanente devido a:

  • Permissão ausente de VIEW SERVER STATE em painéis mais recentes adicionada recentemente SQL Server versões
  • Conexões remotas desativadas em SQL Server instância
  • Falhas de autenticação para consultas específicas do sistema
  • Erros em versões específicas do SSMS, particularmente nas versões 18.0 a 18.3.
  • Problemas de conectividade entre o cliente e o servidor

8.2.3 Etapas de resolução

Para resolver problemas de estado pausado do Monitor de Atividade:

  1. Atualizar SSMS: Baixe e instale o mais recente SQL Server Versão do Management Studio disponível no site da Microsoft. Muitos bugs relacionados ao estado pausado foram corrigidos em versões posteriores.
  2. Verificar permissões: Certifique-se de ter as permissões VIEW SERVER STATE e VIEW ANY DEFINITION.
  3. Verificar conexões remotas: Verifique se o SQL Server A instância permite conexões remotas:
    EXEC sp_configure 'remote access';
    

    Se o valor for 0, peça a um administrador para habilitá-lo.

  4. Reinicie o SSMS: Às vezes, basta fechar todas as janelas e reiniciar. SQL Server O Management Studio resolve o problema.
  5. Conectar com a Autenticação do Windows: Se estiver usando autenticação SQL, tente usar a autenticação do Windows, pois ela às vezes contorna problemas de pausa relacionados à autenticação.

8.3 Problemas de desempenho ao usar o Monitor de Atividade

Se o próprio Monitor de Atividade ficar lento ou causar degradação no desempenho do servidor, será necessário fazer ajustes.

8.3.1 Redução da sobrecarga de monitoramento

Para minimizar o impacto do Monitor de Atividades:

  1. Aumente o intervalo de atualização para 30 segundos ou 1 minuto.
  2. Feche os painéis que não estiver usando ativamente clicando no botão de recolher.
  3. Quando os painéis estão recolhidos, o Monitor de Atividade não consulta os dados correspondentes.
  4. Evite executar várias instâncias do Monitor de Atividade simultaneamente.
  5. Feche completamente o Monitor de Atividades quando não estiver investigando problemas ativamente.

8.3.2 Métodos alternativos de monitoramento leve

Se o Monitor de Atividades consumir muitos recursos do seu ambiente, considere alternativas:

  • Consultar DMVs diretamente: Escreva consultas T-SQL específicas que recuperem apenas as informações de que você precisa.
  • Use sp_WhoIsActive: Este procedimento armazenado é altamente otimizado e normalmente tem uma sobrecarga menor do que o Monitor de Atividades.
  • Implementar amostragem: Agende tarefas do SQL Agent que capturem instantâneos dos dados do DMV em intervalos regulares, armazenando os resultados em tabelas para análise posterior.
  • Monitorar réplicas secundárias: In grupos de disponibilidade Sempre AtivosExecute o Monitor de Atividade em um servidor secundário legível em vez do primário.

8.4 Informações Incorretas ou Ausentes

Às vezes, o Monitor de Atividade exibe informações que parecem incorretas ou incompletas.

8.4.1 Verificação de dados junto aos Departamentos de Veículos Motorizados (DMVs)

Quando os resultados do Monitor de Atividade parecerem suspeitos, verifique-os consultando diretamente as DMVs subjacentes. Por exemplo, se o painel Processos não mostrar nenhum bloqueio, mas os usuários relatarem bloqueios, consulte:

SELECT 
    blocking_session_id,
    session_id,
    wait_type,
    wait_time,
    wait_resource
FROM sys.dm_exec_requests
WHERE blocking_session_id != 0;

Se esta consulta mostrar bloqueios que o Monitor de Atividade não detectou, você confirmou um problema de exibição.

8.4.2 Compreendendo o tempo de atualização de dados

Lembre-se de que o Monitor de Atividades exibe instantâneos. Uma consulta executada entre os intervalos de atualização não aparecerá em Consultas Recentes Custosas, a menos que seu plano de execução permaneça em cache.

Da mesma forma, as estatísticas de espera no painel "Esperas de Recursos" refletem o acúmulo desde o último instantâneo. Cargas de trabalho que mudam rapidamente podem apresentar padrões diferentes a cada atualização.

9. Técnicas avançadas de monitoramento de atividades

Administradores de banco de dados experientes utilizam o Monitor de Atividades de maneiras sofisticadas para extrair o máximo valor diagnóstico.

9.1 Combinando vários painéis para análise da causa raiz

O verdadeiro poder do Monitor de Atividade surge quando você correlaciona informações em vários painéis para entender problemas complexos de desempenho.

9.1.1 Correlação entre tempos de espera e processos

Quando o painel "Esperas de Recursos" mostrar tempos de espera elevados em uma categoria, use o painel "Processos" para identificar quais sessões estão apresentando essas esperas:

  1. Observe a categoria de espera com alto tempo de espera acumulado (por exemplo, “Travar”).
  2. Mude para o painel Processos.
  3. Ordenar Tipo de espera Agrupar as sessões de acordo com o tempo de espera atual.
  4. Procure por sessões que apresentem tipos de espera na categoria problemática.
  5. Para essas sessões, examine o Recurso de espera coluna para ver quais objetos do banco de dados estão envolvidos.
  6. Clique com o botão direito e selecione Detalhes para visualizar o texto da consulta.

Essa correlação ajuda você a passar de "temos esperas por bloqueios" para "esta consulta específica está aguardando bloqueios nesta tabela".

9.1.2 Vinculando consultas dispendiosas a problemas de E/S

Quando o painel de E/S de Arquivos de Dados mostra alta atividade de disco em um banco de dados específico:

  1. Observe quais arquivos de banco de dados apresentam altas taxas de leitura ou gravação em MB/s.
  2. Alternar para Consultas recentes mais caras.
  3. Ordenar Leituras físicas/seg Identificar consultas que realizam leituras intensivas em disco.
  4. Filtrar ou identificar visualmente as consultas em execução no banco de dados que apresentam alto volume de E/S.
  5. Examine os planos de execução dessas consultas em busca de varreduras de tabela ou índices ausentes que estejam causando E/S excessiva.

Esta análise em vários painéis relaciona os sintomas (alta E/S de disco) com as causas (consultas ineficientes específicas).

9.2 Utilizando o Monitor de Atividades para o Planejamento de Capacidade

Embora o Monitor de Atividades não armazene dados históricos, você pode usá-lo estrategicamente para observações de planejamento de capacidade.

9.2.1 Identificação de padrões de pico de uso

Monitore a atividade do servidor em diferentes horários do dia para identificar padrões de uso:

  1. Abra o Monitor de Atividades durante os horários de pico de negócios conhecidos.
  2. Observe os valores de pico no gráfico de % Tempo de Processador.
  3. Registre o número máximo de tarefas em espera.
  4. Observe as solicitações em lote por segundo nos horários de pico.
  5. Documente os bancos de dados mais movimentados no painel Processos.
  6. Repita o procedimento fora dos horários de pico para fins de comparação.

Se o tempo de processamento nos horários de pico ultrapassar consistentemente 80%, você está se aproximando dos limites de capacidade da CPU. Da mesma forma, o aumento no número de esperas indica uma crescente disputa por recursos.

9.2.2 Análise de Tendências de Recursos

Embora o Monitor de Atividades mostre o estado atual, você pode usá-lo para verificar tendências pontuais, registrando métricas importantes ao longo do tempo:

  • Faça capturas de tela do painel Visão geral sempre no mesmo horário.
  • Registre os valores de pico de cada gráfico.
  • Compare semana a semana para identificar tendências de crescimento.
  • Fique atento a aumentos graduais no tempo médio de processamento ou nas taxas de E/S.

Este acompanhamento manual de tendências complementa soluções de monitoramento mais sofisticadas e ajuda a justificar a expansão da capacidade.

9.3 Documentação das Linhas de Base de Desempenho

Estabelecer métricas de desempenho de referência ajuda a reconhecer quando o desempenho se degrada.

9.3.1 Captura de métricas de referência

Durante períodos de bom desempenho comprovado, documente as métricas do Monitor de Atividades:

  1. Abra o Monitor de Atividades durante o horário normal de funcionamento da empresa (fora dos horários de pico ou fora de pico).
  2. Valores do painel Visão geral do registro:
    • Faixa típica de % Tempo de Processamento
    • Contagem média de tarefas em espera
    • Taxa normal de E/S do banco de dados
    • Número típico de solicitações em lote por segundo
  3. Observe as categorias do painel "Esperas de Recursos" que apresentam o maior tempo de espera.
  4. Documente o número de processos ativos, normalmente no painel Processos.
  5. Registre as métricas de execução de consultas representativas das Consultas Recentes de Alto Custo.

Guarde esta documentação de referência para consultas futuras ao investigar problemas de desempenho.

9.3.2 Comparação do desempenho atual com o desempenho de referência

Quando surgirem problemas de desempenho, compare as leituras atuais do Monitor de Atividade com a sua linha de base documentada:

  • O tempo de processamento está significativamente maior do que o tempo normal? Concentre-se nas consultas que exigem muito da CPU.
  • As tarefas em espera estão 2 a 3 vezes acima dos níveis de referência? Investigue as esperas de recursos.
  • O volume de E/S aumentou substancialmente? Verifique o painel de E/S de Arquivos de Dados e as consultas dispendiosas.
  • O número de solicitações em lote é menor que o normal durante os horários de pico? Verifique se há problemas de bloqueio ou conectividade.

Essa comparação ajuda você a identificar o que mudou e a direcionar os esforços de solução de problemas de forma adequada.

9.4 Criação de fluxos de trabalho de monitoramento personalizados

Desenvolver fluxos de trabalho sistemáticos para cenários de investigação comuns, a fim de garantir uma análise completa e repetível.

9.4.1 Processo de investigação passo a passo

Quando os usuários relatarem problemas de desempenho, siga um fluxo de trabalho consistente:

  1. Verificação rápida de saúde: Abra o Monitor de Atividade e examine os gráficos do painel Visão Geral em busca de anomalias óbvias.
  2. Verificar bloqueios: Expanda o painel Processos e filtre por valores não em branco na coluna Bloqueado por.
  3. Identificar disputas por recursos: Painel de revisão de esperas de recursos, ordenado por tempo de espera.
  4. Encontrar consultas dispendiosas: Examine as consultas dispendiosas recentes, ordenadas por CPU, depois por execuções e, por fim, por leituras.
  5. Correlacionar padrões de entrada/saída: Faça referência cruzada a consultas dispendiosas com a atividade do painel de E/S de arquivos de dados.
  6. Descobertas do documento: Faça capturas de tela e registre os IDs de sessão relevantes, os tipos de espera e os detalhes da consulta.
  7. Mergulho profundo: Utilize rastreamentos do Profiler, análise do plano de execução e consultas DMV para uma investigação detalhada dos problemas identificados.

9.4.2 Critérios de escalonamento

Estabelecer critérios para determinar quando encaminhar problemas para instâncias superiores em vez de continuar a investigação:

  • Escalar imediatamente: Cadeias de bloqueio com duração superior a 5 minutos, tempo de processador a 100% por mais de 2 minutos, processos críticos do sistema apresentando estado SUSPENSO.
  • Aprofundar com análise: Consultas recorrentes e dispendiosas que consomem mais de 50% da CPU, tempos de resposta de E/S consistentemente elevados (>50ms), falhas repetidas na concessão de memória.
  • Investigar mais a fundo: Aguardas temporárias resolvidas em minutos, consultas com planos subótimos, mas desempenho aceitável, bloqueios menores com duração inferior a 30 segundos.

10. Monitoramento de atividades em diferentes SQL Server versões

O Monitor de Atividades evoluiu em todo o mundo. SQL Server versões, com cada lançamento trazendo melhorias e, ocasionalmente, novos problemas.

10.1 Monitor de atividades em SQL Server 2008 e mais tarde

SQL Server Em 2008, foi introduzido o design moderno do Monitor de Atividades, que permanece praticamente inalterado até hoje.

10.1.1 Novos recursos introduzidos em SQL Server 2008

O SQL Server A reformulação do Monitor de Atividades de 2008 trouxe melhorias significativas:

  • Painel gráfico com gráficos em tempo real no painel Visão geral
  • Interface de painéis expansíveis/recolhíveis substituindo a antiga visualização somente em grade.
  • O painel "Consultas caras recentes" exibe dados agregados de desempenho de consultas.
  • Painel de E/S de arquivos de dados para monitoramento da atividade de disco por arquivo.
  • Painel de espera de recursos aprimorado com categorização de esperas
  • Menus de contexto acessíveis com o botão direito do mouse para ações do processo, como encerrar sessões e iniciar o Profiler.
  • Intervalos de atualização configuráveis ​​de 1 segundo a 1 hora

Essas mudanças transformaram o Monitor de Atividades de uma simples lista de processos em um painel de monitoramento abrangente.

10.1.2 Alterações de SQL Server 2005

SQL Server O Monitor de Atividades de 2005 era muito mais limitado:

  • O acesso é feito através da pasta Gerenciamento no Explorador de Objetos, em vez da barra de ferramentas.
  • Grade única exibindo a lista de processos com informações básicas.
  • Sem gráficos ou múltiplos painéis.
  • Sem consultas dispendiosas ou monitoramento de E/S.
  • Estatísticas de tempo de espera limitado

A reformulação de 2008 representou uma reinvenção completa, e não uma melhoria incremental.

10.2 Monitor de atividades em SQL Server 2014/2016

SQL Server Em 2014 e 2016, foram feitas melhorias incrementais na coleta de dados subjacente do Monitor de Atividades, mas poucas alterações visuais.

10.2.1 Melhorias e Aprimoramentos

As principais melhorias nessas versões incluíram:

  • Melhor desempenho ao monitorar servidores com milhares de planos em cache.
  • Recursos de filtragem aprimorados no painel Processos
  • Precisão aprimorada na agregação de estatísticas de espera
  • Melhoria no gerenciamento da classificação e filtragem de colunas com grandes conjuntos de resultados.
  • Consultas mais eficientes ao Detran reduzem a sobrecarga de monitoramento.

A interface principal permaneceu consistente com SQL Server 2008, mantendo a familiaridade para os administradores.

10.3 Monitor de atividades em SQL Server 2019/2022

Recentes SQL Server As novas versões continuam a evolução do Activity Monitor, com foco em desempenho e estabilidade.

10.3.1 Recursos e funcionalidades mais recentes

SQL Server O Monitor de Atividades de 2019 e 2022 inclui:

  • Suporte para novos tipos de espera introduzidos nessas versões.
  • Melhoria no desempenho de renderização no SSMS usando a tecnologia WPF.
  • Melhor gerenciamento de um grande número de sessões ativas.
  • Compatibilidade aprimorada com plataformas SQL na nuvem.
  • Métricas de CPU e E/S mais precisas

10.3.2 Problemas conhecidos em versões recentes

SQL Server Em 2019, foram introduzidos diversos bugs no Monitor de Atividades:

  • Estado de pausa permanente: O Monitor de Atividades entra em estado de pausa com frequência e não retoma a atividade, principalmente nas versões 18.0 a 18.3 do SSMS. Este problema foi corrigido em versões posteriores do SSMS.
  • Falhas de conexão remota: Algumas configurações impedem que o Monitor de Atividade seja aberto em instâncias remotas. Soluções alternativas incluem habilitar sinalizadores de rastreamento específicos ou usar versões mais recentes do SSMS.
  • Problemas de permissão: As novas visualizações do sistema exigem permissões adicionais que não estão claramente documentadas, causando telas em branco mesmo com o comando VIEW SERVER STATE ativado.

Sempre utilize a versão mais recente do SSMS ao trabalhar com SQL Server 2019 e 2022 para evitar esses problemas.

11. Casos de uso práticos e exemplos

Exemplos práticos demonstram como aplicar o Monitor de Atividades de forma eficaz em cenários comuns de resolução de problemas.

11.1 Estudo de Caso: Diagnóstico de uma Aplicação Web Lenta

Uma equipe de desenvolvimento relata que seu aplicativo web tornou-se inaceitavelmente lento, com o carregamento das páginas levando de 20 a 30 segundos em vez dos normais 2 a 3 segundos.

11.1.1 Investigação Inicial com Painel de Visão Geral

Abra o Monitor de Atividade e examine o painel Visão geral:

  1. O gráfico de % Tempo de Processador mostra uma utilização da CPU entre 85% e 95%, significativamente superior à linha de base normal de 30% a 40%.
  2. O número de tarefas em espera varia entre 10 e 20 tarefas, em comparação com uma linha de base normal de 0 a 3.
  3. A entrada/saída do banco de dados apresenta atividade moderada em torno de 50 MB/s.
  4. O número de solicitações em lote por segundo é menor do que o esperado, ficando em 100 por segundo, em comparação com os típicos 300 a 400 por segundo durante o horário comercial.

Esse padrão sugere um gargalo na CPU com disputa por recursos, causando redução na taxa de transferência. O servidor está trabalhando intensamente, mas não está processando muitas solicitações.

11.1.2 Identificando a consulta problemática

Expanda o painel Consultas recentes dispendiosas e classifique por Execuções/min:

  1. A consulta mais frequente apresenta 15,000 execuções por minuto.
  2. Clique com o botão direito e selecione Editar texto da consulta para examinar a consulta.
  3. A consulta é uma simples instrução SELECT que recupera um único registro de usuário: SELECT * FROM Users WHERE UserId = @UserId.
  4. Essa consulta não deve ser executada 15,000 vezes por minuto em condições normais de uso do aplicativo.

Clique com o botão direito do mouse na consulta e selecione Mostrar Plano de ExecuçãoO plano mostra uma varredura da tabela Users com um aviso sobre um índice ausente na coluna UserId.

Filtre o painel Processos por Aplicativo para exibir apenas as conexões do aplicativo web. Sessões múltiplas mostram a mesma consulta sendo executada repetidamente.

11.1.3 Resolução e Verificação

O problema decorre de duas questões: execuções excessivas de consultas e ausência de um índice. Passos para a resolução:

  1. Criar o índice ausente:
    CREATE NONCLUSTERED INDEX IX_Users_UserId 
    ON Users (UserId);
    
  2. Entre em contato com a equipe de desenvolvimento. sobre as execuções excessivas. A investigação revela um problema de consulta N+1 no código do aplicativo, onde um loop recupera detalhes do usuário para cada item em uma lista.
  3. Modificar o aplicativo Para agrupar as pesquisas de usuários em uma única consulta usando uma cláusula IN ou um parâmetro com valor de tabela.
  4. Verifique a correção Ao monitorar o Monitor de Atividades após a implantação, observa-se que o uso da CPU cai para 35-40%, as execuções por minuto diminuem para 200-300 e os tempos de resposta do aplicativo retornam ao normal.

11.2 Estudo de Caso: Resolvendo um Problema de Bloqueio

Os usuários relatam que o sistema de entrada de pedidos congela periodicamente por 30 a 60 segundos antes de retomar o funcionamento normal.

11.2.1 Detecção da Cadeia de Bloqueio

Abra o Monitor de Atividade durante um desses eventos de congelamento e expanda o painel Processos:

  1. Ordenar ID da sessão Para ver todas as sessões organizadas.
  2. Várias sessões exibem valores em Bloqueado por coluna, todas apontando para o ID da sessão 73.
  3. A sessão 73 mostra '1' no Bloqueador de Cabeça coluna, confirmando que é a causa raiz.
  4. O Tipo de espera Para sessões bloqueadas, aparece LCK_M_X, indicando que estão aguardando bloqueios exclusivos.
  5. O Recurso de espera A coluna revela que o bloqueio está na tabela de Pedidos.

11.2.2 Analisando a Causa

Clique com o botão direito do mouse na Sessão 73 e selecione Detalhes Para visualizar o comando:

UPDATE Orders 
SET Status = 'Processing', 
    LastModified = GETDATE()
WHERE OrderId IN (SELECT OrderId FROM #TempOrders);

Esta atualização faz parte de um processo em lote que é executado a cada hora. Verificando o Entrar A coluna confirma que a sessão pertence à conta do serviço de processamento em lote.

A consulta está mantendo bloqueios na tabela de Pedidos enquanto processa milhares de pedidos. Tempo de espera O número de sessões bloqueadas aumenta constantemente, confirmando que essa operação de longa duração é o problema.

11.2.3 Implementando a correção

Resolução a curto prazo:

  1. Documente os detalhes da Sessão 73, incluindo o texto da consulta e a duração.
  2. Permita que a atualização seja concluída normalmente, pois trata-se de um processamento em lote legítimo.
  3. Após a conclusão, verifique se as sessões bloqueadas foram removidas e se as operações normais foram retomadas.

Soluções de longo prazo implementadas:

  1. Reagende o trabalho em lote. Para funcionar fora do horário de pico (das 2h às 4h da manhã, em vez do horário comercial).
  2. Modifique o processamento em lote Atualizar pedidos em lotes menores de 100 registros por vez, liberando os bloqueios entre os lotes.
  3. Adicionar um índice na coluna OrderId para acelerar a operação de atualização.
  4. Considere o isolamento SNAPSHOT para operações de leitura, a fim de reduzir o impacto de bloqueio.

11.3 Estudo de Caso: Identificando Execuções de Consultas Excessivas

O monitoramento do banco de dados mostra que o uso da CPU aumentou gradualmente ao longo do último mês, mas não ocorreram mudanças óbvias no código do aplicativo.

11.3.1 Identificação de contagens anormais de execuções

Abra o Monitor de Atividade e examine o painel Consultas caras recentes:

  1. Ordenar Execuções/min Para visualizar as consultas executadas com maior frequência.
  2. A consulta mais bem avaliada apresenta 37,000 execuções por minuto — um número muito superior a qualquer outra consulta.
  3. Clique com o botão direito e selecione Editar texto da consulta.
  4. A consulta recupera informações sobre a categoria do produto:
    SELECT CategoryId, CategoryName 
    FROM ProductCategories 
    WHERE CategoryId = @CategoryId;
    
  5. Essa consulta simples deveria ser rápida e armazenável em cache, mas está sendo executada dezenas de milhares de vezes por minuto.

11.3.2 Rastreamento até o código do aplicativo

No painel Processos, localize as sessões que executam esta consulta:

  1. Note o Aplicação A coluna mostra “ProductCatalogService”.
  2. Clique com o botão direito do mouse em uma dessas sessões e selecione Rastrear processo em SQL Server Profiler.
  3. O SQL Profiler revela que a consulta é executada repetidamente em rápida sucessão com diferentes valores de CategoryId.
  4. Entre em contato com a equipe de desenvolvimento responsável pelo ProductCatalogService para revisão de código.

A revisão do código revelou o problema: uma alteração recente recupera listas de produtos com categorias. Para cada produto no conjunto de resultados (frequentemente mais de 1,000 produtos), o código faz uma chamada separada ao banco de dados para buscar informações de categoria — um problema clássico de consulta N+1.

11.3.3 Otimizando o Aplicativo

Implementar uma correção adequada:

  1. Modifique a consulta do aplicativo Para usar um JOIN para recuperar produtos e suas categorias em uma única chamada ao banco de dados:
    SELECT p.ProductId, p.ProductName, c.CategoryId, c.CategoryName
    FROM Products p
    INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId
    WHERE p.Active = 1;
    
  2. Implante o código atualizado e monitorar o Monitor de Atividades.
  3. Verifique a correção: O número de execuções por minuto para a consulta de categoria cai de 37,000 para menos de 100, e o uso geral da CPU diminui em 40%.
  4. Documente a lição aprendida. e compartilhe com a equipe de desenvolvimento para evitar problemas semelhantes em futuras alterações de código.

12. Detectar possíveis corrupções no banco de dados

Embora o Monitor de Atividades não seja projetado especificamente para detectar corrupção de banco de dados, certos padrões em sua exibição podem sugerir problemas de corrupção subjacentes que justificam uma investigação mais aprofundada.

12.1 Sintomas de possível corrupção do banco de dados

Se houver corrupção no banco de dados e ele estiver sendo acessado, você poderá ocasionalmente observar:

1. No painel Processos:

  • Sessões presas no estado SUSPENSO com tipos de espera incomuns
  • Processos que apresentam estados de erro
  • Consultas falhando repetidamente

2. No painel de esperas de recursos:

  • Tipos de espera incomuns relacionados a E/S que podem indicar problemas de disco (embora isso provavelmente indique problemas de hardware em vez de corrupção lógica).

3. Em consultas recentes de alto custo:

  • Consultas com um número anormalmente alto de leituras físicas indicam que elas estão tentando ler páginas corrompidas repetidamente.

12.2 Verificação adicional com DBCC CHECKDB

Quando o Monitor de Atividades exibir sintomas que sugerem possível corrupção, você deve executar imediatamente o comando DBCC CHECKDB para verificar a integridade do banco de dados. Este comando examina todas as páginas do banco de dados, valida os checksums e verifica erros de consistência lógica.

Para saber mais sobre como usar o DBCC CHECKDB para verificar e corrigir corrupções de banco de dados, consulte nosso [link para o artigo/documento ... Guia completo do DBCC CHECKDB.

12.3 Reparo com Ferramentas Profissionais

Se o comando DBCC CHECKDB confirmar a corrupção do banco de dados, você terá várias opções para repará-lo:

13. Conclusão

SQL Server O Monitor de Atividades é uma ferramenta indispensável para administradores de banco de dados, fornecendo informações imediatas sobre o desempenho do servidor e ajudando a diagnosticar problemas de forma rápida e eficaz.

13.1 Resumo dos Pontos Chave

Ao longo deste guia, exploramos como o Monitor de Atividade ajuda você a entender e solucionar problemas. SQL Server desempenho:

  • O Monitor de Atividades oferece visibilidade em tempo real de processos, esperas, consultas e E/S por meio de uma interface gráfica organizada.
  • Os cinco painéis — Visão geral, Processos, Esperas de recursos, E/S de arquivos de dados e Consultas dispendiosas recentes — oferecem perspectivas únicas sobre a atividade do servidor.
  • Problemas comuns, como execuções excessivas de consultas, bloqueios em cadeia e alto uso da CPU, tornam-se gerenciáveis ​​com uma investigação sistemática do Monitor de Atividades.
  • Embora poderoso, o Monitor de Atividades possui limitações, incluindo a falta de dados históricos, o agrupamento por tipo de espera e a sobrecarga de monitoramento que afetam sua aplicabilidade.
  • Complementar o Monitor de Atividades com consultas ao DMV (Data Management View), sp_WhoIsActive, Eventos Estendidos e, potencialmente, ferramentas de terceiros, cria uma estratégia de monitoramento abrangente.
  • Seguindo as melhores práticas para intervalos de atualização, fechando o Monitor de Atividade quando não estiver em uso e combinando vários painéis para correlação, você maximiza seu valor e minimiza o impacto.

13.2 Monitor de atividades como parte do seu conjunto de ferramentas

O Monitor de Atividades deve ser sua primeira ferramenta de resposta para investigações de desempenho, e não a única. Sua principal vantagem reside em fornecer visibilidade imediata durante a resolução de problemas, ajudando você a determinar rapidamente se o banco de dados é o gargalo e a identificar quais aspectos específicos precisam de uma investigação mais aprofundada.

Pense no Monitor de Atividade como um painel de instrumentos do seu carro — ele avisa imediatamente se algo está errado e ajuda a identificar a área geral do problema. Assim como o painel do seu carro não informa exatamente por que a luz de verificação do motor acendeu, o Monitor de Atividade aponta para os problemas sem sempre revelar a causa raiz completa. Essa análise mais aprofundada requer ferramentas e conhecimento adicionais.

Integre o Monitor de Atividades a um conjunto de ferramentas mais amplo que inclua análise do plano de execução, rastreamento de estatísticas de espera, soluções de monitoramento histórico e melhores práticas de desempenho. Use-o em conjunto com estratégias de indexação adequadas, técnicas de otimização de consultas e planejamento de capacidade.

13.3 Dando continuidade à sua jornada de aprendizado

Dominar o Monitor de Atividades é apenas um passo para se tornar um administrador de banco de dados eficaz. Continue aprimorando suas habilidades:

  • Aprender a interpretar planos de execução e identificar operações ineficientes.
  • Compreensão SQL Server estatísticas de espera e suas implicações
  • Estudar técnicas de projeto e otimização de índices
  • Explorando SQL ServerA arquitetura do sistema e como ele processa as consultas.
  • Praticar metodologias sistemáticas de resolução de problemas
  • Adquirindo experiência com Eventos Estendidos para rastreamento detalhado.
  • Compreender os níveis de isolamento de transações e seu impacto no desempenho.

Cada investigação de desempenho com o Monitor de Atividades ensina algo novo sobre como SQL Server Funcionamento e como os aplicativos interagem com os bancos de dados. Documente suas descobertas, compartilhe conhecimento com colegas e construa uma biblioteca de soluções para problemas comuns.

13.4 Recursos Adicionais

Amplie seus conhecimentos com estes valiosos recursos:

14. Perguntas frequentes (FAQ)

Q: O que é SQL Server Monitor de atividade?

A: SQL Server O Monitor de Atividades é uma ferramenta integrada dentro do aplicativo. SQL Server Estúdio de gerenciamento que exibe informações em tempo real sobre os processos em execução em um SQL Server instâncias e seu impacto nos recursos do servidor. Ele fornece um painel gráfico com cinco painéis que mostram diferentes aspectos da atividade do servidor, incluindo uso do processador, tarefas em espera, taxas de E/S, sessões ativas e consultas dispendiosas.

P: Como faço para abrir o Monitor de Atividades no SSMS?

A: Você pode abrir o Monitor de Atividades de quatro maneiras: (1) Clique no ícone do Monitor de Atividades na barra de ferramentas do SSMS, (2) Clique com o botão direito do mouse no seu SQL Server nome da instância no Explorador de Objetos e selecione monitor de atividade, (3) Press Ctrl + outro + Aou (4) Configure o SSMS para iniciá-lo automaticamente via Ferramentas -> Opções -> Meio Ambiente -> Comece.

P: Quais permissões eu preciso para usar o Monitor de Atividade?

A: Você precisa do VER ESTADO DO SERVIDOR Para visualizar a maioria das informações do Monitor de Atividades, você precisa de permissão. Para o painel de E/S de Arquivos de Dados, você também precisa de: CRIAR BANCO DE DADOS, ALTERAR QUALQUER BANCO DE DADOS, ou VER QUALQUER DEFINIÇÃO permissões. Sem essas permissões, o Monitor de Atividade pode abrir, mas exibirá painéis em branco.

P: Por que meu Monitor de Atividade está pausado ou não está funcionando?

A: O Monitor de Atividades geralmente pausa devido a problemas de permissão, versões desatualizadas do SSMS ou conexões remotas desativadas. Para resolver: (1) Atualize para a versão mais recente do SSMS, (2) Verifique se você tem a permissão VISUALIZAR ESTADO DO SERVIDOR, (3) Verifique se as conexões remotas estão habilitadas no servidor. SQL Server instância, (4) Reinicie o SSMS e (5) Tente conectar com a autenticação do Windows em vez da autenticação SQL, se aplicável.

P: Qual a diferença entre o Monitor de Atividade e o sp_WhoIsActive?

A: O Monitor de Atividades é uma ferramenta gráfica integrada ao SSMS que fornece painéis organizados para diferentes aspectos do monitoramento. O sp_WhoIsActive é um procedimento armazenado gratuito, criado pela comunidade, que retorna informações detalhadas da sessão em um único conjunto de resultados, com tipos de espera mais específicos, detalhes de bloqueio e opções de personalização mais amplas do que o Monitor de Atividades. O Monitor de Atividades é mais adequado para exploração visual, enquanto o sp_WhoIsActive se destaca no monitoramento por script e fornece informações mais detalhadas.

P: O Monitor de Atividade afeta o desempenho do servidor?

R: Sim, o Monitor de Atividade tem uma sobrecarga mensurável porque consulta as DMVs do sistema a cada intervalo de atualização. O impacto aumenta com taxas de atualização mais baixas — a Microsoft alerta que intervalos abaixo de 10 segundos podem afetar o desempenho do servidor. Sempre feche o Monitor de Atividade quando não estiver usando-o ativamente e considere intervalos de atualização de 30 a 60 segundos em servidores de produção sob carga elevada.

P: Posso obter dados do Monitor de Atividades usando T-SQL?

R: Sim, o Monitor de Atividades consulta as exibições de gerenciamento dinâmico do sistema, como sys.dm_exec_requests, sys.dm_exec_sessions, sys.dm_os_wait_stats e sys.dm_exec_query_stats. Você pode consultar essas DMVs diretamente usando T-SQL para recuperar informações equivalentes programaticamente, permitindo scripts de monitoramento personalizados e coleta automatizada de dados.

P: Qual é o intervalo de atualização padrão?

A: O intervalo de atualização padrão é de 10 segundos. Você pode alterá-lo clicando com o botão direito do mouse em qualquer lugar no painel Visão geral e selecionando Intervalo de atualizaçãoe escolhendo entre opções predefinidas: 1 segundo, 5 segundos, 10 segundos, 30 segundos, 1 minuto ou 1 hora. Intervalos menores proporcionam visualizações em tempo real, mas aumentam a sobrecarga de monitoramento.

P: Como posso abrir o Monitor de Atividades automaticamente ao iniciar o SSMS?

A: Configure a inicialização automática através das opções do SSMS: Navegue até Ferramentas -> Opções -> Meio Ambiente -> Comece, Em seguida, selecione Abra o Explorador de Objetos e o Monitor de Atividades. do Na inicialização menu suspenso. O Monitor de Atividades será aberto automaticamente sempre que você se conectar a um servidor no SSMS.

P: Quais são as limitações do Monitor de Atividades?

A: As principais limitações incluem: (1) Ausência de armazenamento de dados históricos ou recursos de análise de tendências, (2) Os tipos de espera são agrupados em categorias em vez de serem exibidos especificamente, (3) Alguns tipos de espera, como CXPACKET, podem não aparecer, (4) Os instantâneos pontuais podem não detectar problemas transitórios, (5) A sobrecarga de monitoramento pode afetar servidores ocupados, (6) Ausência de mecanismo de alerta para monitoramento proativo e (7) Impossibilidade de agregar dados de múltiplos servidores. SQL Server instâncias. Para essas necessidades, complemente o Monitor de Atividades com Eventos Estendidos, conjuntos de coleta de dados ou ferramentas de monitoramento de terceiros.


Sobre o autor

Yuan Sheng é um administrador de banco de dados sênior (DBA) com mais de 10 anos de experiência em SQL Server ambientes e gerenciamento de bancos de dados corporativos. Ele solucionou com sucesso centenas de cenários de recuperação de bancos de dados em organizações de serviços financeiros, saúde e manufatura.

Yuan é especialista em SQL Server recuperação de banco de dados, soluções de alta disponibilidadee otimização de desempenho. Sua vasta experiência prática inclui o gerenciamento de bancos de dados de vários terabytes, a implementação de Grupos de Disponibilidade Always On e o desenvolvimento de estratégias automatizadas de backup e recuperação para sistemas de negócios de missão crítica.

Por meio de sua experiência técnica e abordagem prática, Yuan se concentra na criação de guias abrangentes que ajudam administradores de banco de dados e profissionais de TI a resolver problemas complexos. SQL Server desafios de forma eficiente. Ele se mantém atualizado com as últimas SQL Server lançamentos e as tecnologias de banco de dados em evolução da Microsoft, testando regularmente cenários de recuperação para garantir que suas recomendações reflitam as melhores práticas do mundo real.

Tem dúvidas sobre SQL Server recuperação ou precisa de orientação adicional para solução de problemas de banco de dados? Yuan dá as boas-vindas comentários e sugestões para melhorar esses recursos técnicos.

Compartilhe agora: