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

Come usare pg_stat_activity?

Vedi questa risposta strettamente correlata alla domanda "Tempo di esecuzione della query Postgres" .

pg_stat_activity è una vista nel pg_catalog schema.

Puoi interrogarlo con SELECT ing da esso come qualsiasi altro tavolo, ad es. SELECT * FROM pg_stat_activity . La pagina di manuale a cui ti sei collegato spiega le sue colonne.

A volte ti ritroverai a voler unirti ad altri tavoli come pg_class (tabelle), pg_namespace (schemi), ecc.

Limiti

pg_stat_activity non esporre informazioni sull'utilizzo della memoria back-end. È necessario utilizzare le strutture a livello di sistema operativo per questo. Comunque fa indica l'ID del processo, l'utente attivo, la query attualmente in esecuzione, lo stato dell'attività, l'ora dell'ultima query avviata, ecc. È utile per identificare idle in transaction di lunga durata sessioni, query molto lunghe, ecc.

Francamente, il monitoraggio integrato di PostgreSQL è piuttosto rudimentale. È una delle aree su cui non è entusiasmante lavorare e spesso i clienti commerciali non sono disposti a finanziarla. La maggior parte delle persone abbina strumenti come check_postgres con Icinga e Munin, o utilizzare Zabbix o altri agenti di monitoraggio esterni.

Nel tuo caso sembra che tu voglia davvero pg_stat_statements e/o PgBadger analisi del log con impostazioni di registrazione adeguate ed eventualmente il auto_explain modulo.