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.