2010-03-12 26 views
56

Bir PostgreSQL sunucusuna gönderilen sorguları görmem gerekiyor. Normalde bu eylemi SQL Server arazisinde gerçekleştirmek için SQL Server profiler kullanacaktım, ancak PostgreSQL'de bunu nasıl yapacağımı henüz öğrenemiyorum. Oldukça az sayıda ödeme aracı var gibi gözüküyor, umarım bir açık kaynak varyantı var.SQL Server profilleyicisinin PostgreSQL eşdeğeri var mı?

cevap

47

Bir sunucuya

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

Sadece o ayarlanır ve günlük dosya yoluna tüm sorgular listesini almak için log_statement yapılandırma ayarını kullanabilirsiniz ve listeyi gerekecek. Ayrıca uzun süreli sorguları yalnızca oturum açmak için de yapılandırabilirsiniz.

Daha sonra bu sorguları alabilir ve bunlarla neler olup bittiğini öğrenmek için EXPLAIN komutunu kullanabilirsiniz. basitçe herhangi bir zamanda aşağıdaki bildiri yayınlaması which queries are currently running görmek, Yuşa cevap ekleme

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

+1

, PG benim sürümü (9.3) ile – BozoJoe

27

(örn PGAdminIII sorgusu pencerede):

SELECT datname,procpid,current_query FROM pg_stat_activity; 

Numune çıkışı:

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

buna karşı -f bir kuyruk attı kullanmak, aşağıdaki sorguyu kullanılan client_addr, sorgu FR_s pg_stat_activity; pg_stat_activity, DB 'postgresql' – mrmuggles

+1

SELECT client_addr, state_change, query FROM pg_stat_activity öğesinin bir görünümüdür; – Dmitry

21

PgBadger'ı (http://dalibo.github.io/pgbadger/) keşfettim ve hayatımı birçok kez koruyan harika bir araç. İşte bir rapor örneği: http://dalibo.github.io/pgbadger/samplev4.html. Açarsanız ve 'top' menüsüne giderseniz, en yavaş sorguları ve zaman alıcı sorguları görebilirsiniz. Daha sonra ayrıntıları sorabilir ve saatlere göre sorguları gösteren güzel grafikleri görebilir ve ayrıntı düğmesini kullanırsanız SQL metnini güzel bir şekilde görebilirsiniz. Bu aracın özgür ve mükemmel olduğunu görebiliyorum. Joshua ve vladr cevabı ekleme

+1

Oldukça güzel bir araç. Bu dokümanı, resmi dokümanın gayet güzel olduğu gibi yüklemek için kullandım: https://www.dhis2.org/analysing-postgresql-logs-using-pgbadger – mrmuggles

+0

Sadece bir not, bu araç sadece * nix sistemleri içindir Windows kullanıcıları için hangi berbat –

0

Bana uyar:

Açık postgresql.conf

Seti:

log_statement = 'mod'

log_min_messages = debug2

Son günlüğünü aç a t klasörü C: \ Program Dosyaları \ PostgreSQL \ 9.6 \ data \ pg_log \

Sorgular orada olacak. , SEÇ datname, pid, usename, uygulama_adı:

Ben postgresql-9.6.5-1 mükemmel

İlgili konular