Ich muss die an einen PostgreSQL-Server gesendeten Abfragen sehen. Normalerweise würde ich den SQL Server-Profiler verwenden, um diese Aktion im SQL Server-Land auszuführen, aber ich muss noch herausfinden, wie dies in PostgreSQL gemacht wird. Es scheint einige kostenpflichtige Tools zu geben, ich hoffe, es gibt eine Open-Source-Variante.
quelle
Um zu Joshuas Antwort hinzuzufügen , um zu sehen, welche Abfragen gerade ausgeführt werden, geben Sie einfach jederzeit die folgende Anweisung ab (z. B. im Abfragefenster von PGAdminIII):
SELECT datname,procpid,current_query FROM pg_stat_activity;
Beispielausgabe:
datname | procpid | current_query ---------------+---------+--------------- mydatabaseabc | 2587 | <IDLE> anotherdb | 15726 | SELECT * FROM users WHERE id=123 ; mydatabaseabc | 15851 | <IDLE> (3 rows)
quelle
Ich habe pgBadger ( http://dalibo.github.io/pgbadger/ ) entdeckt und es ist ein fantastisches Tool, das mir viele Male das Leben gerettet hat. Hier ist ein Beispiel für einen Bericht: http://dalibo.github.io/pgbadger/samplev4.html . Wenn Sie es öffnen und zum Hauptmenü gehen, sehen Sie die langsamsten und zeitaufwändigen Abfragen. Dann können Sie nach Details fragen und schöne Grafiken sehen, die Ihnen die Abfragen nach Stunden zeigen. Wenn Sie die Detailschaltfläche verwenden, können Sie den SQL-Text in einer hübschen Form sehen. So kann ich sehen, dass dieses Tool kostenlos und perfekt ist.
quelle
Wenn Sie pgAdmin verwenden (auf meinem Bild ist es pgAdmin 4 v2.1). Sie können Abfragen über die Registerkarte "Dashboard" beobachten:
quelle
Sie können die Erweiterung pg_stat_statements verwenden .
Wenn Sie die Datenbank im Docker ausführen, fügen Sie einfach diesen Befehl hinzu
docker-compose.yml
. Andernfalls lesen Sie einfach die Installationsanweisungen für Ihr Setup:Und dann in der Datenbank diese Abfrage ausführen:
CREATE EXTENSION pg_stat_statements;
Um nun die Operationen zu sehen, die mehr Zeit in Anspruch genommen haben:
SELECT * FROM pg_stat_statements ORDER BY total_time/calls DESC LIMIT 10;
Oder spielen Sie mit anderen Abfragen in dieser Ansicht, um das zu finden, wonach Sie suchen.
quelle