SQL/Performance

Origem: Wikilivros, livros abertos por um mundo aberto.
< SQL

Existem múltiplas formas de se melhorar o desempenho de queries SQL e considerando-se o princípio da melhoria contínua é sempre importante revisar, testar e refazer constantemente as ações tomadas.

Medidas de manutenção e administração do banco de dados – e nessa questão pode-se considerar desde coisas relativamente simples como reindexação até o uso de um servidor de dados paralelo especificamente para elaborar consultas – são necessários, independente de considerar a performance propriamente. Além da mentalidade de melhoria contínua e uma administração de banco de dados adequada, o uso das mais diversas boas práticas de SQL é uma medida que sempre deve ser observada para resultados otimizados.

Uma prática consideravelmente econômica na elaboração de uma query SQL é solicitar campos estritamente necessários para sua consulta, assim evitando grandes quantidades de entradas e saídas já que o acesso direto a disco sempre performa conforme limitações do hardware e mesmo da rede a que o sistema é submetido. Dentro dessa mesma premissa limitações no 'data set', filtrando por datas, além das condições específicas, é um bom meio de estabelecer limites que colaborem nesse sentido.

Levando-se em contas as boas práticas, remover subqueries e usar visões – já que uma VIEW sempre tem dados atualizados, bem como evitar as junções quaisquer que sejam: INNER, OUTER ou cartesianas é sempre uma boa medida para uma query SQL desempenhar melhor. Para casos inevitáveis de uso do JOIN, nunca se esqueça que uma boa indexação favorece muito o bom desempenho lembrando que existe sempre uma medida bem equilibrada para se trabalhar com índices já que seu excesso tende a ser prejudicial em termos de modelagem.

Campos calculados devem ser evitados já que quanto mais cru o dado solicitado, mais rápido ele retornará, então evite, seja para consultas simples ou que façam uso de junções.

Muitas outras práticas podem ser tomadas, porém nunca lance mão de conferir os planos de execução das consultas a serem melhoradas, ali sempre será possível verificar gargalos e pontos de melhoria.

Sempre que se esteja com um código pronto, uma medida razoável é a reescrita da query SQL a luz das sugestões apresentadas, faça isso sempre e perceberá que sempre tem algo que possa ser feito. Partindo desta ação e perseguindo sempre uma boa gestão estatística entre outras ações podem levar a bons resultados.