Bancos de dados de alto desempenho e alta disponibilidade são o objetivo de todo DBA do SQL Server, mas a realidade é que o desempenho do banco de dados nem sempre é o ideal. Tempos de resposta lentos, tempos limite e CPUs sobrecarregadas acontecem com os melhores de nós, o que torna a configuração estratégica do diagnóstico do SQL Server uma etapa crucial na manutenção de um sistema eficiente e em bom funcionamento.
O diagnóstico do SQL Server descobrirá problemas de desempenho relacionados ao uso de memória, velocidade e eficiência da consulta e uso da CPU, o que ajudará você a identificar e corrigir problemas rapidamente com um efeito mínimo no desempenho. Para minimizar ainda mais os impactos no desempenho, você pode criar uma estratégia de monitoramento de desempenho que inclua o rastreamento de dados de diagnóstico ao longo do tempo para descobrir problemas difíceis de localizar e prever problemas de desempenho futuros antes que eles ocorram.
Para obter as informações mais valiosas do diagnóstico do SQL Server, é importante primeiro identificar o que você espera aprender com os dados para monitorar as métricas de desempenho mais relevantes. Aqui estão quatro dicas para ajudá-lo a começar.
Meta de diagnóstico:monitorar o desempenho do banco de dados para ambientes locais, virtuais e de nuvem
Independentemente de seus bancos de dados estarem hospedados no local, na nuvem ou em um ambiente híbrido, o monitoramento do desempenho do banco de dados nessas cinco áreas alertará sobre alguns dos problemas de desempenho mais comuns:
- Disponibilidade:manter a alta disponibilidade é uma das principais prioridades do DBA. O rastreamento de dados de log de cluster de failover e o status atual do servidor são essenciais para detectar e corrigir problemas antecipadamente.
- Uso de TempDB:fique de olho em quanto TempDB você usa e como ele está sendo usado. Também é aconselhável criar uma linha de base TempDB e extrair dados de desempenho antes e depois das alterações.
- E/S:o diagnóstico do SQL Server descobrirá operações de E/S travadas que podem causar bloqueios e outros problemas de desempenho.
- Uso de CPU:o alto uso de CPU pode ser causado por várias coisas. Use o diagnóstico do SQL Server para isolar a causa raiz. Esta lista de verificação pode apontar na direção certa.
- Uso de memória:se você não otimizar o uso de memória, terá problemas de desempenho em algum momento. Execute diagnósticos para determinar quais processos estão usando mais do que sua parcela de memória e otimize ou reescreva conforme necessário.
Meta de diagnóstico:encontrar as causas de bloqueios e impasses
Bloqueios e deadlocks são os principais assassinos de desempenho, portanto, diagnosticar o que está causando bloqueios e resolver o problema rapidamente é essencial para manter o alto desempenho. Várias fontes comuns de bloqueios e impasses podem ser erradicadas por meio dessas três práticas:
- Examinar consultas e planos de consulta:consultas longas e planos de consulta ineficientes contribuem para bloqueios e impasses. O diagnóstico pode identificar consultas que podem ser divididas em várias transações curtas e quais planos de consulta não são otimizados como resultado de estatísticas desatualizadas.
- Analisar a carga de trabalho:um aumento na carga de trabalho pode causar bloqueios à medida que mais processos disputam os mesmos recursos. O diagnóstico pode identificar qual usuário, banco de dados, host ou instrução do SQL Server está causando o bloqueio ou impasse para que você possa redistribuir a carga de trabalho conforme necessário.
- Verificar índices:uma boa indexação pode evitar bloqueios, eliminando a necessidade de varreduras completas de tabela. Ao permitir que o SQL Server busque em vez de verificar, a indexação mantém os recursos não bloqueados acessíveis.
Meta de diagnóstico:resolver alertas falsos
Alertas falsos são mais do que apenas irritantes; eles contribuem para problemas de desempenho não detectados por meio da fadiga do alarme. A fadiga de alarmes ocorre quando alarmes falsos frequentes fazem com que um DBA ignore alertas, potencialmente perdendo uma notificação de que ocorreu uma falha crítica.
A melhor maneira de interromper alertas falsos é diagnosticar as fontes de alertas falsos recorrentes e remover alertas não críticos ou definir limites que especificam estritamente as condições que acionam um alerta.
Meta de diagnóstico:otimizar consultas SQL
A execução de diagnósticos regulares do SQL Server em consultas ajudará a reduzir ou eliminar uma série de possíveis problemas de desempenho. Duas maneiras de melhorar as consultas com base no diagnóstico do SQL Server são:
- Ajuste de consulta:se a ferramenta de monitoramento de desempenho do SQL Server mostrar que um relatório está demorando muito para ser gerado, que houve um grande pico de espera de E/S recentemente ou que determinados trabalhos estão demorando três vezes mais para serem executados eles fizeram um ano atrás, o diagnóstico pode indicar que o ajuste de consulta está em ordem. O ajuste de consulta melhora o desempenho analisando as consultas e, em seguida, reescrevendo-as, se necessário, até que estejam sendo executadas em seu nível máximo de eficiência.
- Atualizando estatísticas:conforme mencionado acima, estatísticas desatualizadas contribuem para problemas de desempenho ao acionar planos de consulta ineficientes. Agende atualizações automatizadas sempre que possível. Quando a automação não for possível, adicione atualizações manuais à sua lista de verificação de manutenção regular para garantir que as estatísticas permaneçam atualizadas.
O diagnóstico do SQL Server é uma ferramenta essencial na caixa de ferramentas do DBA. Compreender como os diagnósticos contribuem para manter um ambiente de banco de dados SQL Server confiável e de alta disponibilidade ajudará você a encontrar e corrigir problemas de desempenho rapidamente com o mínimo de efeito sobre seus usuários.