Sobre el proyecto

django-query-optimizer es una herramienta diseñada para analizar y optimizar el rendimiento de Django ORM. Identifica cuellos de botella comunes en la base de datos, como consultas N+1, ejecución de SQL duplicada y consultas lentas, proporcionando sugerencias concretas para solucionarlos (por ejemplo, utilizando select_related() o prefetch_related()). Las capacidades clave incluyen: - Recolección de Consultas: Un gestor de contexto seguro para hilos y un middleware HTTP para capturar consultas SQL, duración de la ejecución y trazas de pila de Python. - Detectores Especializados: Análisis integrado para consultas lentas/duplicadas generales, patrones N+1, repeticiones de búsqueda de ForeignKey y problemas de N+1 específicos de los serializadores de DRF. - Puntos de Integración: - Django Admin: Un panel para ver listas de sesiones y las consultas lentas principales. - pytest: Un complemento que proporciona una bandera `--query-analysis` y un fixture `query_collector` para afirmar recuentos de consultas y rendimiento en las pruebas. - VS Code: Soporte para salida SARIF 2.1.0 para mostrar diagnósticos como advertencias integradas en el editor. - Puntuación: Un sistema de puntuación de salud (0-100) con calificaciones por letras (A-F) para cuantificar la eficiencia del ORM. La herramienta está destinada a entornos de desarrollo y proporciona una API pública para análisis personalizados a través de QueryCollector y QueryAnalyzer.