À propos du projet

django-query-optimizer est un outil conçu pour analyser et optimiser les performances de l'ORM Django. Il identifie les goulots d'étranglement courants de la base de données, tels que les requêtes N+1, l'exécution de SQL en double et les requêtes lentes, en fournissant des suggestions concrètes de corrections (par exemple, l'utilisation de select_related() ou prefetch_related()). Les capacités clés incluent : - Collecte de requêtes : Un gestionnaire de contexte thread-safe et un middleware HTTP pour capturer les requêtes SQL, la durée d'exécution et les traces de pile Python. - Détecteurs spécialisés : Analyse intégrée pour les requêtes lentes/dupliquées générales, les modèles N+1, les répétitions de recherche de ForeignKey et les problèmes N+1 spécifiques aux sérialiseurs DRF. - Points d'intégration : - Django Admin : Un tableau de bord pour visualiser les listes de sessions et les requêtes lentes principales. - pytest : Un plugin fournissant un flag `--query-analysis` et une fixture `query_collector` pour affirmer le nombre de requêtes et les performances dans les tests. - VS Code : Prise en charge de la sortie SARIF 2.1.0 pour faire remonter les diagnostics sous forme d'avertissements en ligne dans l'éditeur. - Notation : Un système de score de santé (0-100) avec des notes alphabétiques (A-F) pour quantifier l'efficacité de l'ORM. L'outil est destiné aux environnements de développement et fournit une API publique pour l'analyse personnalisée via QueryCollector et QueryAnalyzer.