Sobre o projeto
O django-query-optimizer é uma ferramenta projetada para analisar e otimizar o desempenho do Django ORM. Ele identifica gargalos comuns de banco de dados, como consultas N+1, execução de SQL duplicada e consultas lentas, fornecendo sugestões concretas de correções (por exemplo, usando select_related() ou prefetch_related()).
As principais capacidades incluem:
- Coleta de Consultas: Um gerenciador de contexto thread-safe e middleware HTTP para capturar consultas SQL, duração da execução e rastreamentos de pilha (stack traces) do Python.
- Detectores Especializados: Análise integrada para consultas lentas/duplicadas gerais, padrões N+1, repetições de busca de ForeignKey e problemas de N+1 específicos de serializadores DRF.
- Pontos de Integração:
- Django Admin: Um painel para visualizar listas de sessões e as principais consultas lentas.
- pytest: Um plugin que fornece a flag `--query-analysis` e uma fixture `query_collector` para afirmar contagens de consultas e desempenho em testes.
- VS Code: Suporte para saída SARIF 2.1.0 para exibir diagnósticos como avisos inline no editor.
- Pontuação: Um sistema de pontuação de saúde (0-100) com notas (A-F) para quantificar a eficiência do ORM.
A ferramenta é destinada a ambientes de desenvolvimento e fornece uma API pública para análise personalizada via QueryCollector e QueryAnalyzer.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.