O monitoramento de desempenho do SQL Server é considerado por muitos administradores de banco de dados como sua responsabilidade mais importante. Dado que servidores com desempenho insatisfatório podem impactar negativamente não apenas as operações internas, mas também os aplicativos voltados para o cliente, rastrear o desempenho do SQL e mitigar os problemas rapidamente são essenciais para o sucesso e a lucratividade da empresa.
À medida que mais organizações recorrem ao SQL Server, os DBAs procuram cada vez mais recursos para ajudá-los a implementar uma estratégia sólida de monitoramento de desempenho. Há uma abundância de documentação disponível para ajudar os DBAs a impulsionar o monitoramento de desempenho do SQL Server, mas há algumas perguntas universais para as quais quase todo DBA deseja uma resposta rápida. Aqui estão as respostas para 10 das perguntas mais frequentes sobre monitoramento de desempenho do SQL Server.
O que é monitoramento de desempenho do SQL Server?
O principal objetivo do monitoramento de desempenho do SQL Server é garantir um desempenho consistente e alta disponibilidade das instâncias do SQL Server. O monitoramento de desempenho é um processo de duas partes, e ambas as partes são essenciais para manter seu sistema funcionando de forma otimizada:
-
Monitoramento: Acompanhe uma ampla variedade de métricas de desempenho em relação aos limites predefinidos para identificar comportamentos anômalos e fornecer um mecanismo para informar o DBA com alarmes específicos para o problema e fornecer contexto suficiente para iniciar o processo de diagnóstico.
-
Diagnóstico: O fluxo de trabalho e as ferramentas necessárias para estabelecer a origem de um problema de desempenho e os dados necessários para remediar o problema imediato.
-
Análise de causa raiz: Os insights para olhar além dos sintomas e identificar problemas subjacentes que desencadearam o problema e podem fazer com que ele ocorra novamente.
-
Análise de tendências: Observe o desempenho durante longos períodos de tempo. Use a análise de tendências para identificar problemas antes que eles ocorram, portanto, diferencie entre problemas recorrentes e pontuais ou examine os limites da carga de trabalho ao longo do tempo. O último pode ser usado para prever necessidades futuras de infraestrutura, informar os esforços de consolidação ou o tamanho certo para a migração planejada para a nuvem.
Quais ferramentas de monitoramento de desempenho de banco de dados são melhores?
O número de bancos de dados pelos quais um DBA é responsável torna o monitoramento e o diagnóstico manuais impraticáveis — talvez até impossíveis. Felizmente, as soluções de software de monitoramento de desempenho mais recentes estão equipadas com vários recursos para tornar o monitoramento de desempenho gerenciável, mesmo em grande escala:
-
Gerenciamento eficaz de alarmes: Priorizar alarmes significa que você pode resolver os grandes problemas primeiro e ignorar alarmes falsos.
-
Diagnóstico abrangente: As melhores ferramentas de monitoramento de desempenho permitem que você se aprofunde no diagnóstico. Saber que há um problema não é tão útil quanto saber como corrigi-lo.
-
Tempo de retorno rápido: Cada instância coleta centenas de métricas e armazená-las no local ficará caro rapidamente. Considere uma das soluções de monitoramento de desempenho SaaS para economia de custos e escalabilidade.
-
Análise: Análises robustas são um diferencial importante entre as ferramentas de monitoramento de desempenho. Para obter o máximo impacto no desempenho, selecione uma ferramenta que forneça métricas abrangentes para carga de trabalho, plano de consulta, causa raiz de alarme e bloqueio.
-
Acompanhamento de dados históricos: Procure uma ferramenta de monitoramento de desempenho que salve dados históricos. Isso acelerará a solução de problemas porque você saberá se um problema é recorrente e como os problemas estão sendo rastreados ao longo do tempo.
-
Ajuste e otimização do plano de consulta: Uma ferramenta com inteligência artificial integrada permitirá que você ajuste as consultas e otimize-as para uma instância específica.
-
Verificações de integridade: As verificações de integridade monitoram os sinais vitais do SQL Server para que você saiba que pode ter um problema, às vezes antes mesmo de o problema existir.
Se você quiser uma ferramenta com todos os recursos discutidos acima, precisará procurar uma das soluções de monitoramento de desempenho do SQL Server orientadas à nuvem. Incomparáveis em escalabilidade, flexibilidade e preço, essas ferramentas de monitoramento fornecem uma plataforma de monitoramento de desempenho segura para atender a todas as necessidades.
Qual é a melhor maneira de otimizar o monitoramento do desempenho do banco de dados?
Uma das melhores maneiras de otimizar o monitoramento de desempenho é a automação. Automatizar tarefas comuns – como monitorar o espaço em disco, inspecionar logs de erros e verificar os backups do banco de dados – garantirá que essas tarefas sejam concluídas, o que dá ao DBA mais tempo para realizar um trabalho de maior valor.
Além disso, você pode implementar o seguinte para otimizar o monitoramento de desempenho do SQL Server:
-
Monitoramento móvel: O monitoramento móvel está disponível em seus dispositivos Android e iOS. Fornecendo mapas de calor, alarmes inteligentes e listas de alarmes, o monitoramento de desempenho móvel permite diagnosticar problemas e iniciar a triagem de qualquer lugar.
-
Ajuste e otimização de consultas: O ajuste de desempenho permite que você visualize, analise e otimize sua consulta SQL e planos de execução, destacando os operadores de custo mais alto, oferecendo correções sugeridas para problemas e reescrevendo/otimizando suas consultas e plano de consulta.
-
Verificações de integridade: As verificações de integridade ajudam você a otimizar seu monitoramento de desempenho, identificando problemas de integridade em cada instância do SQL Server, incluindo longas esperas e latência de E/S. As verificações de integridade também fornecem dados históricos, para que você possa acompanhar os problemas de desempenho ao longo do tempo.
Como devo escolher uma ferramenta de monitoramento do SQL Server?
Há duas considerações principais ao decidir sobre uma ferramenta de monitoramento de desempenho do SQL Server.
Que tipo de ferramenta você está procurando?
Existem três tipos principais de ferramentas de monitoramento de desempenho a serem considerados:
-
Personalizado/construído internamente: Nesse caso, lembre-se de que só porque você pode fazer algo nem sempre significa que você deve. Sim, você pode montar uma ferramenta interna de monitoramento de desempenho para coletar métricas usando PerfMon, rastreamentos, DMVs e XEvents. Mas os contras superam em muito os prós de seguir esse caminho. Não é escalável, portanto, à medida que suas instâncias aumentam, seus recursos de monitoramento de desempenho sofrem. Além disso, não é possível monitorar todas as coisas que você precisa observar para garantir o desempenho ideal do SQL Server. Depois de começar a coletar dados, você precisa armazená-los em algum lugar para que sejam úteis, e isso pode sair caro. Conclusão - é mais valioso para você gastar seu precioso tempo construindo e mantendo uma ferramenta de monitoramento de desempenho ou gastá-lo corrigindo e ajustando cargas de trabalho de missão crítica.
-
Gratuito/código aberto: Essa é potencialmente uma escolha melhor do que criar sua própria solução de monitoramento de desempenho, mas ainda há limitações. Embora você ganhe um pouco de personalização, ainda falta abrangência de cobertura e alertas pré-configurados. Você também precisará fornecer seu próprio espaço de armazenamento de dados. É um processo complexo construir uma ferramenta que possa capturar efetivamente grandes quantidades de dados de desempenho sem afetar o servidor monitorado, definir os limites apropriados para centenas de métricas, gerenciar grandes volumes de dados coletados e mantê-los atualizados a partir de uma versão do servidor SQL para o próximo. Concentre seu tempo na solução de problemas e não na criação de sistemas de monitoramento de desempenho. Se você estiver dependendo de atualizações da comunidade, o suporte para novas versões de uma plataforma de banco de dados pode atrasar seu lançamento.
-
Comercial: As ferramentas comerciais de monitoramento de desempenho SQL oferecem uma variedade de recursos e níveis de personalização, e muitas são surpreendentemente acessíveis. As ferramentas comerciais facilitam o monitoramento de desempenho com opções como verificações de integridade, gerenciamento de alarmes, diagnósticos de desempenho e recursos de monitoramento móvel - recursos que você não obtém de ferramentas gratuitas ou criadas internamente.
Quais são suas necessidades para seu ambiente específico?
Antes de selecionar uma ferramenta de monitoramento de desempenho, faça a si mesmo estas perguntas para ajudá-lo a identificar a ferramenta que atende às suas necessidades específicas:
-
Quantas instâncias você deseja monitorar?
-
Eles estão localizados ou dispersos?
-
Eles estão no local ou na nuvem (ou ambos)?
-
Você pode arcar com um pagamento único para infraestrutura e licenciamento ou precisa distribuir o custo?
-
Você tem instâncias de infraestrutura e banco de dados disponíveis para dedicar a uma ferramenta de monitoramento?
-
Você tem tempo ou recursos internos para construir e manter a infraestrutura de monitoramento?
-
A ferramenta tem a capacidade de dissecar a carga de trabalho em várias dimensões instantaneamente, para economizar horas de script?
-
Existe um recurso inteligente para analisar os dados e ajudá-lo a identificar problemas específicos?
-
A ferramenta fornece diagnósticos instantâneos, práticas recomendadas ou diagnósticos para o detalhamento relevante?
Qual é a melhor maneira de monitorar a integridade do desempenho do banco de dados?
Há vários sinais de que o SQL Server não está íntegro, incluindo:
-
Desaceleração geral da carga de trabalho
-
Tempos limite de conexão/consulta
-
Uso excessivo da CPU
-
Pressão de memória
-
Latência excessiva de leitura/gravação de E/S
-
Excesso de log de transações ou tamanho de TempDB
Se você notar algum desses sintomas, é hora de configurar as verificações de integridade para que seu sistema volte ao desempenho máximo. Algumas etapas iniciais que você pode seguir para identificar a causa dos problemas de desempenho incluem:
-
Estabelecendo uma linha de base de desempenho e medindo em relação a ela
-
Verificando backups
-
Verificando índices ausentes
-
Determinando qual porcentagem da carga de trabalho é de consultas ad hoc
Quais são as melhores métricas para monitoramento de desempenho do SQL Server?
Existem centenas de métricas que você pode medir para ajudá-lo a acompanhar e melhorar o desempenho, mas há alguns destaques que devem fazer parte de cada plano de manutenção do SQL Server. Aqui estão algumas das principais áreas a serem monitoradas e as métricas nas quais você deve ficar de olho:
-
Índices. Os índices são uma fonte frequente de problemas de desempenho porque os bancos de dados estão em constante mudança. Os dados são adicionados e removidos, e os índices são alterados e excluídos, todos contribuindo para um desempenho ruim. Estas são as métricas a serem observadas:
- Fator de preenchimento
- E/S
- Fragmentação
-
Cache de buffer. É importante configurar o cache de buffer para otimizar o tempo que as páginas permanecem lá sem exagerar e sobrecarregar a memória necessária em outro lugar. Estas são as métricas a serem observadas:
- Expectativa de vida útil da página
- Taxa de acertos do cache do buffer
-
T-SQL. Em vez de executar instruções SQL ad hoc, o SQL Server as agrupa, compila-as em um plano de execução e as armazena em cache, recompilando as instruções conforme necessário. Compilações e recompilações excessivas podem prejudicar o desempenho. Estas são as métricas a serem observadas:
- Compilações SQL
- Recompilações SQL
-
Outras métricas a serem observadas de perto:
- Bloqueia esperas e processos bloqueados
- Uso da CPU
Quais são os problemas comuns no monitoramento de desempenho do banco de dados?
Afunilamentos de desempenho
Os gargalos de desempenho se manifestam como bancos de dados lentos ou sem resposta. Os gargalos podem ser difíceis de localizar porque podem estar relacionados à memória, armazenamento ou processador. No entanto, existem alguns lugares em que você deve procurar problemas primeiro:
- WRITELOG tempo de espera
- UNIÇÃO DO LOOP Aninhado
- Contenção do TempDB
Baixa expectativa de vida útil da página (PLE)
PLE baixo prejudica o desempenho porque o SQL Server precisa ir ao disco com mais frequência para localizar arquivos de dados, o que leva muito mais tempo do que lê-los do cache do buffer.
Fragmentação
Verifique seus índices quanto à fragmentação excessiva. O desempenho do SQL Server é prejudicado quando ele precisa pesquisar páginas dispersas e parcialmente preenchidas para localizar dados.
Como devo configurar meu sistema de monitoramento de desempenho do banco de dados?
Depois de decidir sobre uma solução de monitoramento de desempenho do SQL Server, é hora de colocá-la em funcionamento. Embora você possa querer mergulhar em todos os novos recursos brilhantes imediatamente, dar um passo para trás e abordar o processo metodicamente ajudará a garantir que você obtenha o máximo do seu sistema. Aqui estão algumas dicas para integrar sua nova ferramenta de gerenciamento de desempenho:
-
Decida quais instâncias precisam mais de sua atenção
-
Execute os pré-requisitos
-
Conheça os requisitos do seu sistema
-
Baixe o instalador
-
Adicionar conexões
Que consultas posso usar para monitorar o desempenho do SQL Server?
As consultas que você usa para monitoramento de desempenho variam de acordo com as métricas que você está acompanhando. No entanto, detectar problemas de memória, avaliar a desfragmentação do índice e identificar tempos de espera inaceitáveis provavelmente estão no topo da lista de verificação de monitoramento de desempenho de cada DBA. A documentação do SQL Server da Microsoft fornece detalhes para várias consultas para ajudá-lo a implementar seu plano de monitoramento de desempenho:
-
Uso de memória
-
Desfragmentação do índice
-
Estatísticas de espera
Quais são as melhores práticas de monitoramento de desempenho de banco de dados?
Algumas pessoas discordam do termo “melhores práticas”, mas quando se trata de monitoramento de desempenho do SQL Server, não há como argumentar que há certas coisas que um DBA precisa fazer para manter o sistema saudável e os usuários satisfeitos.
Faça da manutenção do índice uma prioridade
Negligenciar seus índices é uma maneira infalível de gerar problemas de desempenho. Os índices são a fonte de assassinos de desempenho comuns, incluindo fragmentação e divisões de página.
Conheça sua carga de trabalho
É difícil saber quando você tem um problema se você não sabe o que é “normal”. Reserve algum tempo para conhecer sua carga de trabalho fazendo perguntas como:
-
Quando esta instância é a mais movimentada?
-
Quais aplicativos usam essa instância?
-
Quando foi o último backup?
-
Esta instância tem desafios de desempenho conhecidos?
Escolha uma ferramenta de monitoramento de desempenho que atenda às suas necessidades específicas
Antes de se comprometer com uma ferramenta de monitoramento de desempenho do SQL Server, primeiro você precisa definir suas necessidades. Depois de entender o que você está tentando alcançar com sua ferramenta de monitoramento de desempenho, você pode buscar com confiança uma solução com os recursos que atendem aos seus requisitos.
Encontre e corrija gargalos de desempenho
Sintomas óbvios de gargalos de desempenho incluem o uso de muita memória, longos tempos de espera, fragmentação de índice e muitos ou poucos índices. Encontrar e corrigir esses gargalos rapidamente é uma das principais responsabilidades de um DBA. A melhor maneira de manter o desempenho do banco de dados com integridade máxima é implementar uma ferramenta de monitoramento de desempenho que o ajude a localizar e corrigir facilmente gargalos de desempenho e outras fontes de degradação de desempenho.