2010-03-12 11 views
56

मुझे PostgreSQL सर्वर पर सबमिट किए गए प्रश्नों को देखने की आवश्यकता है। आम तौर पर मैं SQL सर्वर भूमि में इस क्रिया को करने के लिए SQL सर्वर प्रोफाइलर का उपयोग करता हूं, लेकिन मुझे यह पता नहीं चला कि PostgreSQL में इसे कैसे किया जाए। ऐसा लगता है कि औजारों के लिए कुछ भुगतान-भुगतान हैं, मुझे आशा है कि एक ओपन सोर्स संस्करण होगा।क्या SQL सर्वर प्रोफाइलर का पोस्टग्रेएसक्यूएल समतुल्य है?

उत्तर

47

आप एक सर्वर

https://www.postgresql.org/docs/current/static/runtime-config-logging.html#guc-log-statement

बस निर्धारित करते हैं और प्रवेश फ़ाइल पथ को सभी प्रश्नों की सूची प्राप्त करने log_statement config सेटिंग का उपयोग कर सकते हैं और आप सूची होगा। आप इसे लंबे समय तक चलने वाले प्रश्नों को लॉग इन करने के लिए भी कॉन्फ़िगर कर सकते हैं।

फिर आप उन प्रश्नों को ले सकते हैं और उनके साथ क्या चल रहा है यह जानने के लिए उन पर EXPLAIN चला सकते हैं।

http://www.designmagick.com/article/23/Using-Explain/Using-Explain/page/2

+1

सही, इसके खिलाफ -f – BozoJoe

27

जोशुआ की जवाब देने के लिए जोड़ा जा रहा है, which queries are currently running देखने के लिए बस किसी भी समय निम्नलिखित बयान जारी (जैसे PGAdminIII की क्वेरी विंडो में):

SELECT datname,procpid,current_query FROM pg_stat_activity; 

नमूना उत्पादन:

 datname | procpid | current_query 
---------------+---------+--------------- 
    mydatabaseabc | 2587 | <IDLE> 
    anotherdb  | 15726 | SELECT * FROM users WHERE id=123 ; 
    mydatabaseabc | 15851 | <IDLE> 
(3 rows) 
+2

एक पूंछ फेंक दिया पीजी की मेरी संस्करण (9.3) के साथ, मैं निम्न क्वेरी का प्रयोग किया: चयन datname, पीआईडी, usename, APPLICATION_NAME, client_addr, क्वेरी pg_stat_activity से; pg_stat_activity डीबी 'postgresql' – mrmuggles

+1

का एक दृश्य है क्लाइंट_addr, state_change, क्वेरी pg_stat_activity से चुनें; – Dmitry

21

मैंने पीजीबीजर (http://dalibo.github.io/pgbadger/) की खोज की और यह एक शानदार उपकरण है जिसने कई बार मेरे जीवन को बचाया। रिपोर्ट का एक उदाहरण यहां दिया गया है: http://dalibo.github.io/pgbadger/samplev4.html। यदि आप इसे खोलते हैं और 'शीर्ष' मेनू पर जाते हैं तो आप सबसे धीमे प्रश्न और समय लेने वाले प्रश्न देख सकते हैं। फिर आप विवरण पूछ सकते हैं और अच्छे ग्राफ देख सकते हैं जो आपको घंटे तक प्रश्न दिखाते हैं और यदि आप विस्तार बटन का उपयोग करते हैं तो आप एक सुंदर रूप में SQL टेक्स्ट देख सकते हैं। तो मैं देख सकता हूं कि यह टूल मुफ्त और सही है।

+1

बहुत अच्छा उपकरण। मैंने इसे स्थापित करने के लिए इस ट्यूटोरियल का उपयोग किया, क्योंकि आधिकारिक डॉक्टर सुंदर वर्बोज़ है: https://www.dhis2.org/analysing-postgresql-logs-using-pgbadger – mrmuggles

+0

बस एक नोट, कि उपकरण केवल * निक्स सिस्टम के लिए है, जो विंडोज उपयोगकर्ताओं के लिए बेकार है –

0

जोशुआ की और vladr के जवाब देने के लिए जोड़ा जा रहा है

यह मेरे लिए काम करता है:

ओपन postgresql.conf

सेट:

log_statement = 'आधुनिक'

log_min_messages = debug2

अंतिम लॉग खोलें टी फ़ोल्डर सी: \ प्रोग्राम फ़ाइलें \ PostgreSQL \ 9.6 \ डेटा \ pg_log \

प्रश्न वहां होंगे।

मैं उपयोग PostgreSQL-9.6.5-1

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