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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.