عن المشروع
django-query-optimizer هي أداة مصممة لتحليل وتحسين أداء Django ORM. فهي تحدد اختناقات قاعدة البيانات الشائعة مثل استعلامات N+1، وتنفيذ SQL المكرر، والاستعلامات البطيئة، وتقدم اقتراحات ملموسة للإصلاحات (على سبيل المثال، استخدام select_related() أو prefetch_related()).
تشمل القدرات الرئيسية ما يلي:
- جمع الاستعلامات: مدير سياق (context manager) آمن للخيوط (thread-safe) وبرمجية وسيطة HTTP لالتقاط استعلامات SQL، ومدة التنفيذ، وتتبعات مكدس Python.
- كاشفات متخصصة: تحليل مدمج للاستعلامات البطيئة/المكررة العامة، وأنماط N+1، وتكرارات البحث عن ForeignKey، ومشكلات N+1 الخاصة بـ DRF serializer.
- نقاط التكامل:
- Django Admin: لوحة تحكم لعرض قوائم الجلسات وأبرز الاستعلامات البطيئة.
- pytest: إضافة توفر علامة `--query-analysis` و fixture باسم `query_collector` للتأكد من عدد الاستعلامات والأداء في الاختبارات.
- VS Code: دعم مخرجات SARIF 2.1.0 لإظهار التشخيصات كتحذيرات مضمنة في المحرر.
- التقييم: نظام تسجيل للصحة (0-100) مع درجات حرفية (A-F) لقياس كفاءة ORM كمياً.
الأداة مخصصة لبيئات التطوير وتوفر واجهة برمجة تطبيقات عامة (public API) للتحليل المخصص عبر QueryCollector و QueryAnalyzer.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.