मैं हर SQL स्टेटमेंट की समीक्षा करने की प्रक्रिया में हूं जो एक एप्लिकेशन डेटाबेस के खिलाफ, प्रदर्शन कारणों से करता है। क्या PostgreSQL डेटाबेस सर्वर द्वारा निष्पादित किए जाने वाले सभी कथनों को लॉग करने का एक आसान तरीका है? धन्यवाद।
मैं हर SQL स्टेटमेंट की समीक्षा करने की प्रक्रिया में हूं जो एक एप्लिकेशन डेटाबेस के खिलाफ, प्रदर्शन कारणों से करता है। क्या PostgreSQL डेटाबेस सर्वर द्वारा निष्पादित किए जाने वाले सभी कथनों को लॉग करने का एक आसान तरीका है? धन्यवाद।
जवाबों:
आपके द्वारा खोजा जा रहा कॉन्फ़िगरेशन विकल्प log_statement = "all"
(यदि आप केवल कथन चाहते हैं), या log_min_statement_duration = <some number>
यदि आप "धीमी" क्वेरी के बाद ("धीमी" के कुछ मूल्य के लिए) हैं। लॉगिंग कॉन्फ़िगरेशन पर अधिक जानकारी के लिए http://www.postgresql.org/docs/current/static/runtime-config-log.html देखें ।
explain analyze
टाई पर धीमी गति से क्वेरी करने की एक अच्छी सुविधा है , जिसे आप निष्पादित किया गया था, आप इस के साथ परीक्षण शुरू करना चाह सकते हैं क्योंकि 8.4 अभी तक जारी नहीं किया गया है, लेकिन यह जानना एक अच्छा विकल्प है कि निष्पादन के समय खुश रहें , अगर विश्लेषण की व्याख्या उत्पादन ठीक है, तो आप शायद I / O या CPU सीमा के साथ मुद्दों में चल रहे हैं, लेकिन कम से कम आपको पता चल जाएगा कि यह स्वयं क्वेरी नहीं है
इसके लिए auto_explain
मॉड्यूल बहुत उपयोगी है। यह केवल बयानों को लॉग नहीं करेगा, यह उनकी निष्पादन योजनाओं को लॉग करेगा और PL / PgSQL फ़ंक्शंस के भीतर चलने वाले स्टेटमेंट भी लॉग इन कर सकता है। जब तक आप विश्लेषण को सक्षम नहीं करते हैं, तब तक प्रदर्शन हिट काफी कम होता है, जिस स्थिति में आप सभी प्रश्नों के लिए उचित ओवरहेड का समय निकाल देते हैं।
auto_explain
दस्तावेज में देखें ।
auto_explain
, यह धन्य मॉड्यूल की उनकी सूची में है। दस्तावेज़ को डॉक्स.समेस्ज़ोन
बेशक, आप अपने आप से सबसे धीमी क्वेरी का पता लगा सकते हैं, लेकिन मैं आपको सलाह देता हूं कि आप pgFouine - एक PostgreSQL लॉग विश्लेषक का उपयोग करें । यह स्थापित करना आसान है और वास्तव में उपयोगी है।