Manter um SQL Server de alto desempenho é essencial não apenas para as operações de sua organização, mas também para seus clientes. Quando seus servidores demoram a responder – ou não respondem – você perde negócios. Aqui estão três áreas principais a serem monitoradas de perto para garantir que o desempenho do SQL Server seja ideal e maneiras de melhorar o desempenho se suas métricas mostrarem que você tem um problema.
Índices
Se seus índices estiverem funcionando bem, eles contribuirão para um sistema rápido e sem problemas. No entanto, se seus índices sofrerem de qualquer uma dessas aflições comuns, você poderá descobrir que o desempenho do SQL Server é afetado negativamente.
Métrica a ser monitorada:fator de preenchimento
O fator de preenchimento é uma configuração no SQL Server que instrui os índices a preencher X por cento de cada página. Parece intuitivo que você queira preencher cada página 100%, mas, na realidade, o preenchimento excessivo de páginas pode causar divisões de página. Se um administrador adicionar uma linha adicional a uma página inteira, a nova linha empurrará cerca de metade das linhas existentes para uma nova página e a nova linha será adicionada à parte inferior da primeira página.
As divisões de página podem causar problemas de desempenho devido ao aumento do número de operações de E/S e ao potencial de fragmentação. No entanto, muito espaço em uma página também pode prejudicar o desempenho porque os recursos estão sendo gastos desnecessariamente.
Para obter os melhores resultados de desempenho de suas configurações de fator de preenchimento, não defina um valor para todo o sistema. Observe seus índices individualmente e defina o fator de preenchimento em um nível apropriado para cada um. Por exemplo, índices que são frequentemente fragmentados precisam de um valor de fator de preenchimento diferente dos índices que raramente são usados.
Métrica a ser monitorada:fragmentação
A fragmentação do índice ocorre quando os usuários adicionam e excluem registros. Mover as coisas é uma parte normal das operações diárias de um banco de dados, mas com o tempo, a fragmentação afeta o desempenho. A fragmentação pode causar alguns problemas:
- Muito espaço em branco em muitas páginas torna as digitalizações mais lentas e usa memória desnecessariamente
- Novas páginas são adicionadas fora de ordem, por isso leva mais tempo para o servidor encontrar dados
Quando a fragmentação começar a afetar o desempenho, você precisará executar Rebuild ou Reorganize para limpar os índices fragmentados. A execução de Rebuild criará um novo índice e removerá o espaço em branco extra. Reorganize coloca as páginas folha em ordem para que o servidor possa encontrar os dados mais facilmente.
Cache de buffer
Quando o SQL Server puder ler páginas no cache de buffer, seu tempo de resposta será mais rápido. O desempenho é prejudicado quando o servidor precisa ir ao disco para localizar uma página, pois precisa passar por uma série de etapas antes de salvar a página no buffer e depois lê-la. Existem algumas métricas que você pode acompanhar que ajudarão a manter o cache de buffer funcionando com desempenho máximo.
Métrica a ser monitorada:expectativa de vida da página
A expectativa de vida da página (PLE) é quanto tempo uma página permanece no cache de buffer sem ser chamada antes de ser enviada de volta ao disco. Aumentar o PLE melhora o desempenho, mas também usa memória que pode ser necessária para outras funções. Se você for ajustar o PLE, precisará descobrir quanta memória pode usar sem afetar o desempenho em outro lugar.
Métrica a ser monitorada:taxa de acertos do cache do buffer
A taxa de acertos do cache de buffer é a porcentagem de páginas localizadas no conjunto de buffers em relação a todas as solicitações de página. A taxa de acertos do cache do buffer deve estar acima de 90 para melhor desempenho (ou seja, o SQL Server não precisa ler do disco). Tome cuidado ao analisar os dados da taxa de acertos do cache do buffer. Uma pequena diminuição na proporção pode não indicar um problema real. Analise os dados em conjunto com o PLE para determinar se existe um problema real de desempenho.
Otimização de consultas
Consultas lentas e com baixo desempenho são um dos problemas de desempenho mais comuns do SQL Server. Há muitos motivos possíveis para suas consultas não estarem funcionando bem, por isso pode ser difícil identificar uma causa exata. Mas há algumas coisas que você pode tentar no início de sua investigação que podem melhorar o desempenho da consulta com o mínimo de esforço.
Métrica a ser monitorada:verificação de índice
A verificação da integridade de seu SQL Server deve ser uma parte regular de seus deveres de DBA. Quando as consultas estiverem lentas, gaste um pouco mais de tempo com o otimizador de consultas. Uma coisa importante a verificar é se a verificação de índice do SQL Server tem algum problema que você precise resolver.
Outro potencial assassino de desempenho é a verificação de índice sendo executada com mais frequência do que o necessário. A varredura de índice leva muito mais tempo do que a busca de índice porque a consulta precisa varrer todas as linhas procurando dados úteis. Configure seu otimizador de consulta para que ele busque índices com mais frequência do que os varre.
Reescrever uma consulta problemática é outra maneira de aumentar o desempenho. Às vezes, simplificar as consultas removerá a parte que está causando o atolamento da consulta. Você também pode tentar adicionar índices para acelerar as consultas, mas isso funciona melhor em alguns casos do que em outros.
Adicionar índices é uma boa solução para campos envolvidos em pesquisa, agrupamento ou classificação; campos acessados com frequência; e campos com valores exclusivos. Geralmente, não é eficaz adicionar índices em campos com valores duplicados, como sim/não ou para tabelas pequenas.
O monitoramento de desempenho do SQL Server é fundamental para manter bancos de dados de alto desempenho. Manter seu SQL Server funcionando na velocidade máxima só pode ser alcançado por meio de atenção diligente às métricas de desempenho. Adicione as métricas discutidas acima à sua lista de verificação de manutenção para identificar e corrigir problemas de desempenho do SQL Server antecipadamente.