Ho bisogno di vedere le domande inviate a un server PostgreSQL. Normalmente userei SQL Server Profiler per eseguire questa azione su SQL Server land, ma devo ancora trovare come farlo in PostgreSQL. Sembra che ci siano parecchi strumenti di pagamento, spero che ci sia una variante open source.Esiste un equivalente PostgreSQL del profiler di SQL Server?
risposta
È possibile utilizzare l'impostazione log_statement config per ottenere l'elenco di tutte le query a un server
https://www.postgresql.org/docs/current/static/runtime-config-logging.html#guc-log-statement
Basta impostare questo, e il percorso del file di registrazione e avrete la lista. È inoltre possibile configurarlo per registrare solo query a esecuzione prolungata.
È quindi possibile prendere quelle query ed eseguire ESPLORA su di esse per scoprire cosa sta succedendo con loro.
http://www.designmagick.com/article/23/Using-Explain/Using-Explain/page/2
aggiunta alla risposta di Joshua, per vedere which queries are currently running semplicemente rilasciare la seguente dichiarazione in qualsiasi momento (ad esempio, in una finestra di query di pgAdminIII):
SELECT datname,procpid,current_query FROM pg_stat_activity;
Esempio di uscita:
datname | procpid | current_query
---------------+---------+---------------
mydatabaseabc | 2587 | <IDLE>
anotherdb | 15726 | SELECT * FROM users WHERE id=123 ;
mydatabaseabc | 15851 | <IDLE>
(3 rows)
Ho scoperto pgBadger (http://dalibo.github.io/pgbadger/) ed è uno strumento fantastico che mi ha salvato la vita molte volte. Ecco un esempio di rapporto: http://dalibo.github.io/pgbadger/samplev4.html. Se lo apri e vai al menu 'top' puoi vedere le query più lente e le query che richiedono molto tempo. Quindi puoi chiedere i dettagli e vedere i grafici che ti mostrano le query per ora e se usi il pulsante di dettaglio puoi vedere il testo SQL in una forma carina. Quindi posso vedere che questo strumento è gratuito e perfetto.
Strumento molto carino. Ho usato questo tutorial per installarlo, dato che il documento ufficiale è piuttosto dettagliato: https://www.dhis2.org/analysing-postgresql-logs-using-pgbadger – mrmuggles
Solo una nota, che lo strumento è solo per sistemi * nix, che fa schifo agli utenti di Windows –
Aggiungendo a Joshua e la risposta di vladr
funziona per me:
Aprire postgresql.conf
Set:
log_statement = 'mod'
log_min_messages = debug2
Aprire l'ultimo registro a t cartella C: \ Programmi \ PostgreSQL \ 9.6 \ data \ pg_log \
Le domande ci saranno.
io uso postgresql-9.6.5-1
- 1. Esiste un equivalente PostgreSQL di SELECT @@ ROWCOUNT in T-SQL?
- 2. Esiste un Oracle equivalente a OUTPUT INSERTED di SQL Server. *?
- 3. SQL Server Profiler - Visualizza Dynamic Sql
- 4. PostgreSQL equivalente per SQL Server GROUP BY WITH ROLLUP
- 5. Esiste un go profiler?
- 6. SQL Server OFFSET equivalente
- 7. SQL Server Profiler mancante dopo l'installazione
- 8. SQL Server Profiler: Modelli non visualizzati/mancanti
- 9. Hashset equivalente in SQL Server
- 10. La colonna di errore del comando sql PostgreSQL 'non esiste'
- 11. SQL Server 2012: Aggiungere un server collegato a PostgreSQL
- 12. Ordina risultati Sql Profiler
- 13. TrimEnd equivalente in SQL Server
- 14. Esiste un profiler di memoria per python2.7?
- 15. Profiler per Sql CE
- 16. Esiste un equivalente di Access della funzione NewId() di SQL Server?
- 17. SQL Server: qualsiasi equivalente di strpos()?
- 18. Postgresql GROUP_CONCAT equivalente?
- 19. Equivalente PostgreSQL di Oplog Tailing in MongoDB
- 20. SQL Server: RowVersion equivalente in Oracle
- 21. SQL Server Profiler: controlla il permesso negato sugli oggetti?
- 22. Qual è l'equivalente PostgreSQL a SQL Server NVARCHAR?
- 23. DB2 vs PostgreSQL vs SQL Server
- 24. Esiste un equivalente MySQL del preg_replace di PHP?
- 25. Esiste un "profiler della dimensione della funzione"?
- 26. Che cos'è "Audit Logout" in SQL Server Profiler?
- 27. Qual è l'equivalente di CHARINDEX (SQL SERVER) in POSTGRESQL?
- 28. Oracle equivalente di PostgreSQL INSERT ... RETURNING *;
- 29. SQL Profiler CPU/unità di durata
- 30. sql server GO equivalente in oracle
perfetta, ha gettato un tail -f contro di essa – BozoJoe