मेरे पास रेल 2.3 का उपयोग कर रूबी में लिखा गया एक आवेदन है। हम ActiveRecord का उपयोग करते हैं।यह निर्धारित करने के लिए कि रूबी-ऑन-रेल कोड कुछ एसक्यूएल उत्पन्न करता है?
कभी-कभी, ActiveRecord कुछ बहुत ही भयानक अक्षम SQL उत्पन्न करता है। हम यह निर्धारित कर सकते हैं कि एसक्यूएल धीमी क्वेरी लॉग का उपयोग करके समस्याग्रस्त है और new relic का उपयोग कर रहा है। हालांकि, समस्याग्रस्त एसक्यूएल उत्पन्न करने वाले हमारे सॉफ़्टवेयर में कोड की रेखा निर्धारित करना वास्तव में मुश्किल हो सकता है। यह आम तौर पर एसोसिएशन और नाम_स्कोप का उपयोग करके बनाई गई एक क्वेरी है।
जो मुझे वास्तव में पसंद है वह हमारे लॉग फाइलों में एसक्यूएल को के साथ कोड के साथ टैग करने के लिए कुछ तरीका है जो इसे उत्पन्न करता है (क्वेरी सक्रिय करने वाले ActiveRecord की रेखा नहीं)।
जानकारी कॉलर सरणी के माध्यम से उपलब्ध होना चाहिए। मैं पूरी सरणी को डंप नहीं करना चाहता, मैं सिर्फ हमारे कोड का फ़ाइल नाम और लाइन चाहता हूं जो सबसे अधिक जिम्मेदार है। क्या कोई मणि है जो पहले से ही करता है? यदि नहीं, तो कोई सुझाव?
एक सहकर्मी ने सुझाव दिया कि हम नियमित रूप से नियमित उत्पादन लॉग फ़ाइल में डालने के बजाय, एसक्यूएल में एक फ़ाइल के रूप में फ़ाइल नाम और लाइन नंबर (एक बार जब हम निर्धारित करते हैं) डालते हैं। इस तरह, धीमी क्वेरी लॉग में यह जानकारी भी होगी। – ChrisInEdmonton