Existe uma consulta SQL lenta. Como diagnosticar?
sobes.tech IA
Resposta da IA
Para diagnosticar uma consulta SQL lenta, geralmente sigo estes passos:
-
Análise do plano de execução (EXPLAIN / EXPLAIN ANALYZE) — verifico como o SGBD planeja executar a consulta, quais índices são utilizados, se há varreduras completas de tabelas.
-
Verificação de índices — asseguro-me de que as colunas envolvidas em filtros e joins tenham índices adequados.
-
Perfil de recursos — observo a carga na CPU, disco, memória durante a execução da consulta.
-
Otimização da consulta — simplifico a consulta, divido-a em partes, elimino JOINs ou subconsultas redundantes.
-
Verificação de estatísticas e sua atualidade — se as estatísticas estiverem desatualizadas, o plano pode ser ineficiente.
-
Parâmetros do SGBD e configuração — às vezes, configurações de memória ou cache afetam o desempenho.
-
Testes com diferentes volumes de dados — para entender como a consulta escala.
Exemplo de comando para analisar o plano no PostgreSQL:
EXPLAIN ANALYZE
SELECT * FROM orders WHERE customer_id = 123;
Isso fornecerá informações detalhadas sobre o tempo de execução e operações utilizadas.