As melhores maneiras de melhorar o desempenho de consultas SQL

A base de qualquer banco de dados relacional é composta pelas consultas SQL que você compõe. Com eles, você pode extrair dados e entregá-los aos usuários finais imediatamente.

Obviamente, nem todas as consultas são criadas iguais e é possível melhorar o desempenho delas por meio de ajustes e técnicas. Aqui estão apenas algumas práticas recomendadas para aumentar o desempenho de consultas SQL.

Como monitorar o desempenho do SQL Server

Antes de entrar no âmago da questão de como melhorar o desempenho da consulta, você precisa ter uma visão geral de como seu banco de dados está otimizado como um todo.

Existem muitas soluções de monitoramento diferentes disponíveis, incluindo aquelas que apresentam um Ferramenta de plano de consulta do servidor SQL que capacita você quando se trata de catalisar consultas em particular.

Todos os tipos de fatores podem influenciar o desempenho do servidor e diferentes problemas podem estar por trás das falhas e ineficiências. Verificar coisas como estatísticas de espera, bem como procurar por bloqueios e deadlocks, irá ajudá-lo em uma boa posição.

A razão para usar soluções de monitoramento de terceiros é que eles podem automatizar tarefas istrativas comuns. Portanto, ao invés de ter que erradicar manualmente as consultas imperfeitas, você pode deixar o software fazer isso por você, com alertas personalizáveis ​​levando a conveniência ainda mais longe.

Otimizando seus índices

Uma das maneiras mais simples de melhorar o desempenho da consulta SQL é certificar-se de que seus índices estão otimizados corretamente. Isso significa desfragmentá-los regularmente para que não fiquem desordenados e possam recuperar as informações certas com eficiência.

A fragmentação do índice é parte integrante de como os bancos de dados SQL operam, portanto, não é algo que você possa evitar totalmente. No entanto, existem algumas coisas a serem consideradas que podem alterar a maneira como você usa os índices em primeiro lugar.

Por exemplo, no caso de uma tabela conter uma quantidade relativamente pequena de dados, um índice pode ser supérfluo e pode realmente prejudicar o desempenho em vez de melhorá-lo.

Outro aspecto da otimização do índice que é relevante do ponto de vista do desempenho é o fato de que, ao reconstruir índices, você precisa estar ciente de como agendar esse processo.

O planejamento para que ocorra quando o banco de dados provavelmente sofrerá uso significativo é claramente insensato, então, em vez disso, trace suas tarefas de manutenção de índice para ocorrerem fora dos horários de pico.

Há uma série de outras estratégias a serem incorporadas ao trabalhar em sua indexação, mas obter os princípios básicos de alto nível de otimização e manutenção funcionará a seu favor no longo prazo.

Monitorando o TempDB do SQL Server

TempDB é muito parecido com a indexação no sentido de que é um dos pilares do funcionamento do SQL Server e, sem ele, você pode enfrentar todos os tipos de complicações em termos de integridade e confiabilidade de dados.

No entanto, TempDB está longe de ser imune quando se trata de causar problemas de desempenho de consulta SQL. Resumindo, é o local onde os dados transitórios são armazenados e, portanto, são usados ​​por quaisquer processos ativos em todas as instâncias do servidor.

Como o nome sugere, TempDB deve armazenar informações apenas temporariamente, antes de descartá-las quando não forem mais necessárias para um processo, aplicativo de negócios, ou usuário.

Além disso, mesmo se você tiver mais de uma instância de servidor em execução, todas elas compartilharão a mesma alocação de TempDB, o que significa que é um ponto importante de vulnerabilidade em termos de desempenho.

Uma das principais coisas a observar ao monitorar TempDB é a quantidade de espaço de armazenamento que está usando.

Se ele ficar cheio porque as transações não foram concluídas corretamente ou os dados armazenados temporariamente não foram removidos, todo um ecossistema SQL pode parar bruscamente.

O uso de ferramentas de monitoramento certamente fornecerá percepções sobre a vazante e o fluxo do TempDB ao longo do tempo, e você pode usá-las para localizar problemas e eliminá-los o mais rápido possível.

Recursos do sistema de monitoramento

Além de ficar de olho em como os aspectos do software de banco de dados estão operando a cada momento, também é aconselhável observar a maneira como os recursos de hardware do servidor estão sendo usados.

Isso pode reduzir ainda mais os possíveis pontos problemáticos ao solucionar problemas de desempenho de consulta lento.

Por exemplo, se certos processos estão consumindo threads de U, memória, largura de banda de rede ou disponibilidade de E / S, isso pode indicar um problema mais amplo que precisa ser resolvido.

Às vezes, isso pode ser corrigido rapidamente simplesmente encerrando o processo problemático ou reiniciando o servidor, se necessário.

Ocasionalmente, uma correção mais abrangente é necessária, e isso dependerá muito das especificações da própria falha.

Outra conclusão que você pode tirar do monitoramento dos recursos do sistema é que as consultas em si não são mal otimizadas e os processos não estão se comportando mal; em vez disso, pode ser que o hardware do seu servidor não seja mais adequado para o seu propósito.

Monitorar os recursos do sistema, portanto, não é apenas verificar se há espaço para otimização hoje, mas também planejar o futuro. À medida que seu banco de dados cresce e o hardware é aprimorado, você pode estimar quando as atualizações serão necessárias e ficar à frente da curva.

Ajuste de consulta

Por último, mas não menos importante, analise as consultas para ver se o ajuste proporcionará aumentos de desempenho. Você pode encontrar consultas abaixo do ideal usando algumas das técnicas e ferramentas de monitoramento mencionadas acima e, em seguida, resolver as imperfeições com base em suas descobertas.

O ideal é que você esteja familiarizado o suficiente com SQL para localizar consultas mal construídas, mas existem algumas estratégias simples a serem consideradas. Por exemplo, seja específico com os campos que você usa em conjunto com a instrução SELECT, em vez de fazer a consulta vasculhar a tabela inteira para encontrar o que você precisa. Uma consulta mais longa será mais rápida do que uma mais curta.

Conclusão

Os es de banco de dados sempre precisam estar atentos ao desempenho da consulta SQL que não está de acordo com o padrão, e seguir as práticas recomendadas é melhor do que pegar atalhos.

Ao fazer as coisas certas da primeira vez, você evitará muitos problemas e trabalho extra mais adiante, por isso é melhor para todos os envolvidos.