2011-08-24 22 views
8

मुझे पता है कि वर्तमान अनुरोध/प्रतिक्रिया के लिए चलाए गए सभी SQL क्वेरी प्राप्त करना संभव है जब DEBUG connection.queries पर देखकर चालू हो। django-debug-toolbar भी विकास पर बहुत मदद करता है।डीबीयूजी के साथ डीजेगो एसक्यूएल प्रश्नों को लॉग इन करने के लिए लॉग इन

समस्या यह है कि मेरा उत्पादन सर्वर उच्च लोड के अधीन है और मैं प्रत्येक दृश्य के लिए निष्पादित किए जा रहे प्रश्नों को लॉग करना चाहता हूं ताकि मैं उन पृष्ठों को अनुकूलित कर सकूं जो पहले अधिक प्रश्न बना रहे हैं।

क्या यह मेरे डेटाबेस ड्राइवर को संशोधित किए बिना ऐसा करना संभव है?

उत्तर

4

Django 1.3 में, मुझे में में use_debug_cursor में एक वर्ग है। यह वर्ग django.db.connection ऑब्जेक्ट के लिए रैपर है जो डिफ़ॉल्ट डेटाबेस कनेक्शन (docs) का प्रतिनिधित्व करता है। ऐसा लगता है कि इस विशेषता को सत्य में सेट करने से लगता है कि django/db/backends/util.py से Django को CursorDebugWrapper का उपयोग करना होगा, जो CursorWrapper के बजाय निष्पादित सभी प्रश्नों को लॉग करता है, जो नहीं।

use_debug_cursor Django 1.2 में मौजूद नहीं है, जो इस समय मैंने इस मशीन पर स्थापित किया है, इसलिए मैं अभी इसका परीक्षण नहीं कर सकता। अगर मेरे पास कुछ मिनट हैं, तो मैं इसका परीक्षण करने के लिए एक डमी 1.3 प्रोजेक्ट शुरू करने की कोशिश करूंगा ... मैं यहां अपने सिर पर भी हो सकता हूं!

use_debug_cursor का नाम बदलकर force_debug_cursor किया जा सकता है Django 1.8

संबंधित मुद्दे