sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan bruger man pg_stat_activity?

Se dette nært beslægtede svar for spørgsmålet "Udførelsestid for Postgres-forespørgsler" .

pg_stat_activity er en visning i pg_catalog skema.

Du kan forespørge det ved at SELECT ing fra det som ethvert andet bord, f.eks. SELECT * FROM pg_stat_activity . Den manualside, du linkede til, forklarer dens kolonner.

Du vil nogle gange opleve, at du ønsker at deltage på andre borde som f.eks. pg_class (tabeller), pg_namespace (skemaer) osv.

Begrænsninger

pg_stat_activity gør ikke afsløre information om brug af back-end hukommelse. Du skal bruge faciliteter på operativsystemniveau til det. Men det gør fortælle dig proces-id'et, den aktive bruger, den aktuelle forespørgsel, aktivitetsstatus, tidspunktet for den sidste forespørgsel startede osv. Det er godt til at identificere langvarig idle in transaction sessioner, meget langvarige forespørgsler osv.

Helt ærligt, PostgreSQL's indbyggede overvågning er ret rudimentær. Det er et af de områder, der ikke er så spændende at arbejde med, og kommercielle kunder er ikke ofte villige til at finansiere det. De fleste mennesker kobler værktøjer som check_postgres med Icinga og Munin, eller brug Zabbix eller andre eksterne overvågningsmidler.

I dit tilfælde lyder det som om du virkelig ønsker pg_stat_statements og/eller PgBadger loganalyse med passende logningsindstillinger og muligvis auto_explain modul.



  1. Tjek, om en tabel har en TIMESTAMP-kolonne i SQL Server med OBJECTPROPERTY()

  2. Sådan sammenkædes flere rækker i én kolonne i MySQL

  3. Oracle:funktion baseret indeks selektiv unikhed

  4. Brugerdefineret rutine med DBMS_STATS, del II