sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur använder man pg_stat_activity?

Se det här närbesläktade svaret för fråga "Utförandetid för postgres-fråga" .

pg_stat_activity är en vy i pg_catalog schema.

Du kan fråga den med SELECT från det som vilket annat bord som helst, t.ex. SELECT * FROM pg_stat_activity . Manualsidan du länkade till förklarar dess kolumner.

Ibland kommer du på att du vill gå med på andra bord som pg_class (tabeller), pg_namespace (scheman) etc.

Begränsningar

pg_stat_activity gör inte avslöja information om användning av backend-minne. Du måste använda funktioner på operativsystemnivå för det. Men det gör berätta process-ID, aktiv användare, aktuell fråga, aktivitetsstatus, tidpunkt då frågan startade, etc. Det är bra för att identifiera långvarig idle in transaction sessioner, mycket långa frågor, etc.

Uppriktigt sagt är PostgreSQL:s inbyggda övervakning ganska rudimentär. Det är ett av de områden som inte är så spännande att arbeta med, och kommersiella kunder är inte ofta villiga att finansiera det. De flesta kopplar ihop verktyg som check_postgres med Icinga och Munin, eller använd Zabbix eller andra externa övervakningsmedel.

I ditt fall låter det som att du verkligen vill ha pg_stat_statements och/eller PgBadger logganalys med lämpliga loggningsinställningar och eventuellt auto_explain modul.



  1. SQLite JSON_TREE()

  2. rake db:create throws databas finns inte fel med postgresql

  3. MySQL – Databas Character Set Encoding and Collation Explained

  4. Vad är databastestning och hur gör man det?