PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie verwende ich pg_stat_activity?

Siehe diese eng verwandte Antwort auf die Frage „Postgres-Abfrageausführungszeit“ .

pg_stat_activity ist eine Ansicht im pg_catalog Schema.

Sie können es mit SELECT abfragen wie jeder andere Tisch, z.B. SELECT * FROM pg_stat_activity . Die Handbuchseite, auf die Sie verlinkt haben, erklärt ihre Spalten.

Manchmal möchten Sie an anderen Tischen wie pg_class teilnehmen (Tabellen), pg_namespace (Schemata) usw.

Einschränkungen

pg_stat_activity tut nicht Informationen über die Back-End-Speichernutzung verfügbar machen. Sie müssen dafür Einrichtungen auf Betriebssystemebene verwenden. Allerdings es tut es Ihnen die Prozess-ID, den aktiven Benutzer, die derzeit ausgeführte Abfrage, den Aktivitätsstatus, den Zeitpunkt, an dem die letzte Abfrage gestartet wurde, usw. mitteilen. Dies ist gut zum Identifizieren lang andauernder idle in transaction Sitzungen, sehr lang andauernde Abfragen usw.

Ehrlich gesagt ist die integrierte Überwachung von PostgreSQL eher rudimentär. Es ist einer der Bereiche, in denen es nicht besonders spannend ist, daran zu arbeiten, und kommerzielle Kunden sind oft nicht bereit, dies zu finanzieren. Die meisten Leute koppeln Tools wie check_postgres mit Icinga und Munin, oder verwenden Sie Zabbix oder andere externe Überwachungsagenten.

In Ihrem Fall klingt es so, als ob Sie wirklich pg_stat_statements wollen , und/oder PgBadger Log-Analyse mit geeigneten Logging-Einstellungen und ggf. dem auto_explain Modul.