2013-07-15 7 views
15

MySQL कमांड लाइन इंटरफ़ेस में, जब आप कोई क्वेरी निष्पादित करते हैं तो यह आपको बताएगा कि परिणामों को प्रिंट करने के बाद क्वेरी को निष्पादित करने में कितना समय लगेगा।पोस्टग्रेस क्वेरी निष्पादन समय

पोस्टग्रेस कमांड लाइन इंटरफ़ेस (psql) में यह आपको नहीं बताता है। मुझे लॉगिंग को कॉन्फ़िगर करने का तरीका पता है, इसलिए मैं लॉग से जानकारी प्राप्त कर सकता हूं, लेकिन यह MySQL में मानक आउटपुट पर प्रिंट करना अधिक सुविधाजनक होगा।

यह किया जा सकता है?

+1

यह व्यर्थ है जब कई गूगल हिट हुए कहा, "गूगल का उपयोग करें" उत्तर दिए गए हैं - एक चॉकलेट चाय की केतली के रूप में के बारे में के रूप में उपयोगी! – NickJ

+0

\ टाइमिंग - बात करने के लिए मजेदार – NickJ

+1

यह एक जोड़े का एक तरीका है। लेकिन फिर भी, अगर आपने इसे आजमाया और यह काम नहीं करता है, तो इसे अपने प्रश्न में वर्णित करें। –

उत्तर

42

का उपयोग करें जैसा कि "How can I time SQL-queries using psql?" द्वारा समझाया गया है।

the manual for psql भी देखें।

आप सर्वर साइड निष्पादन समय उस समय ग्राहक के लिए परिणाम हस्तांतरण करने के लिए शामिल नहीं करना चाहते हैं, तो आप विन्यास में log_min_duration_statement = 0 सेट कर सकते हैं, तो SET client_min_messages = log ताकि आप कंसोल में लॉग जानकारी मिलती है।

विस्तृत निष्पादन समय प्राप्त करने के लिए आप EXPLAIN ANALYZE का भी उपयोग कर सकते हैं। इसके लिए कुछ समय ओवरहेड है जब तक कि आप EXPLAIN (ANALYZE TRUE, TIMING FALSE) का उपयोग न करें, जो केवल नए संस्करणों में है, और इसके बजाय केवल एक समग्र निष्पादन समय देने के लिए विस्तृत समय अक्षम करता है।

PgBadger, खासकर जब the auto_explain module के साथ संयुक्त हो, तो लॉग विश्लेषण से उपयोगी कुल आंकड़े प्रदान कर सकते हैं।

अंत में, pg_stat_statements है, जो चल रहे सिस्टम पर आसान समग्र जानकारी एकत्र कर सकता है।

+1

और \ timing – aName

+0

का उपयोग कैसे करें [मैन्युअल] (https://www.postgresql.org/docs/current/static/app-psql.html) या [google] का उपयोग करें (https://www.google .com.au/खोज? q = psql + समय)। ओह, मैंने आपको नोटिस किया [अभी भी इसके बारे में एक प्रश्न पोस्ट किया है] (http://stackoverflow.com/q/40593723/398670)। शायद आपको इससे जुड़ा होना चाहिए था इसलिए मैंने आपका जवाब यहां जवाब देने में बर्बाद नहीं किया। –

5

मुझे लगता है कि EXPLAIN ANALYSE आप के लिए उपयोगी हो सकता है

सिंटेक्स:

EXPLAIN ANALYSE query; 

उदाहरण;

EXPLAIN ANALYSE 
SELECT * 
FROM demotable; 

आउटपुट:

"Seq Scan on demotable (cost=0.00..12.10 rows=210 width=356) 
         (actual time=0.020..0.021 rows=8 loops=1)" 
"Planning time: 18.477 ms" 
"Execution time: 0.042 ms" 
संबंधित मुद्दे