Os administradores de banco de dados usam muitos chapéus nos bastidores, desde o planejamento de capacidade até a segurança e a recuperação de dados. Talvez a mais visível das responsabilidades do DBA seja o monitoramento de desempenho do SQL Server. Embora as tarefas do dia-a-dia associadas à manutenção de um sistema de alto desempenho possam passar despercebidas pelo mundo exterior, é melhor você acreditar que as pessoas começarão a prestar atenção quando o desempenho estiver abaixo do ideal.
Interrupções de banco de dados, tempos de resposta lentos e outros problemas voltados para o usuário são ruins para os negócios. E, como o desempenho do SQL Server (ou a falta dele) cai diretamente no domínio do DBA, bancos de dados com desempenho insatisfatório são ruins para a segurança do seu trabalho.
Ameaça de desemprego à parte, garantir o desempenho máximo do SQL Server é crucial para a capacidade de sua organização funcionar sem problemas, por isso compilamos cinco truques que os DBAs precisam conhecer para otimizar o desempenho do SQL Server.
Automatizar tarefas de rotina e manutenção
Atualmente, há poucas razões para um DBA fazer muitas tarefas diárias e verificações de manutenção manualmente. As ferramentas atuais de monitoramento de desempenho do SQL Server podem monitorar automaticamente o espaço em disco, inspecionar logs de erros e verificar backups. Você pode até configurar alertas do sistema que não apenas informam que há um problema, mas também fornecem informações sobre a gravidade e o tipo de problema.
Um dos principais benefícios dessas ferramentas de monitoramento é que muitos dos recursos de monitoramento de desempenho são acessíveis por meio de seu dispositivo móvel, tornando a solução de problemas muito mais flexível. Você pode monitorar e fazer a triagem do seu sistema de praticamente qualquer lugar a qualquer momento.
Acompanhar métricas de desempenho
É claro que é importante que suas ferramentas de monitoramento de desempenho do SQL Server detectem e corrijam os problemas atuais, mas também há muito valor em acompanhar o desempenho anterior. Monitorar e analisar o desempenho do banco de dados ao longo do tempo ajuda a identificar tendências e antecipar futuros problemas de desempenho. O histórico de desempenho de rastreamento fornece dados sobre se o desempenho é melhor ou pior em um determinado período de tempo.
A análise de carga de trabalho é outra maneira de obter métricas de desempenho que ajudam a melhorar o desempenho do SQL Server. Execute uma análise para identificar como um usuário, banco de dados, host ou instrução SQL está afetando sua carga de trabalho. Se você isolar uma fonte que está impactando negativamente o sistema, fica muito mais fácil tomar as medidas apropriadas para corrigir o problema.
Identifique a causa raiz dos gargalos
Como dito acima, uma vez que você isola a fonte de um gargalo ou de um assassino de desempenho, é muito mais fácil corrigir o problema. Algumas fontes comuns de gargalos e sintomas a serem observados incluem:
- Problemas de CPU:o SQL Server está sobrecarregando o processador
- Problemas de memória:tempos de execução mais longos nas consultas
- Problemas de armazenamento:atividade extrema nos discos e longos tempos de espera por E/S
- Problemas de E/S:o tempo de espera do WRITELOG é alto comparado ao tempo total de espera
Depois de identificar seu gargalo, há algumas correções que você pode tentar que geralmente resolvem problemas comuns de desempenho, incluindo:
- Ajuste do SQL Server:isole a consulta específica que foi atrasada, o tempo de espera específico que está causando o atraso e o impacto do gargalo no tempo
- Livre-se de índices obsoletos e duplicados:agiliza as consultas porque o otimizador não precisa considerar vários índices ao analisar o desempenho da consulta e determinar um plano.
- Corrigir fragmentação:reconstruir ou desfragmentar periodicamente seus índices melhorará o desempenho reduzindo o número de páginas de dados dispersas ou parcialmente preenchidas que o SQL Server precisa ler.
Executar verificações de integridade de desempenho de rotina
A prevenção é quase sempre melhor do que a cura. Use verificações de integridade para identificar problemas reais e potenciais no sistema. As verificações de integridade ajudarão você a identificar problemas com segurança, recuperação de desastres, memória, E/S e configuração antes que eles causem grandes problemas de desempenho.
As verificações regulares de saúde devem incluir:
- Verificando índices ausentes:índices ausentes tornam o SQL Server lento para responder porque ele precisa pesquisar dados em todos os registros. Mas não se apresse em apenas adicionar índices ausentes; adicionar índices desnecessários também pode afetar negativamente o desempenho.
- Observar níveis desproporcionais de consultas ad hoc:usar consultas ad hoc ocasionalmente não é problema. Mas quando são usados com muita frequência, o desempenho é prejudicado. O SQL Server não reutiliza essas instruções, portanto, o cache do procedimento fica inchado, fazendo com que o cache do buffer libere os dados. O SQL Server precisa ler os dados do disco (lento) em vez da memória.
- Procurando estatísticas desatualizadas:o otimizador de consulta do SQL Server usa estatísticas para calcular o custo estimado das operações. Estatísticas desatualizadas podem fazer com que o otimizador de consultas selecione um plano de execução abaixo do ideal.
Atualize para a versão mais recente do SQL Server
Este parece meio óbvio, mas se você ainda não o fez, atualize para a versão mais recente do SQL Server. O SQL Server 2000, 2005 e 2008 não estão mais em desenvolvimento ativo, e as versões mais recentes têm muitos recursos que definitivamente aumentarão o desempenho. Esses recursos incluem a versão mais recente do otimizador de consultas do SQL Server, novos conjuntos de instruções de CPU e, é claro, correções de bugs.