PostgreSQL laver en per-backend (per-forbindelse, effektivt) cache af de data, der bruges af pg_stat_get_activity()
funktion brugt af både pg_stat_activity
og pg_stat_replication
.
Denne cache ryddes ved commit/rollback, men ikke i slutningen af hver erklæring i en transaktion i READ COMMITTED
som sædvanligt.
Du kan udtrykkeligt rydde det med SELECT pg_stat_clear_snapshot()
. Kald det i brødteksten af en PL/PgSQL LOOP
for at opdatere.
Der er AFAIK ingen måde at bede PostgreSQL om automatisk at opdatere efter hvert udsagn, når du bruger repeatable read
eller højere isolation.
Se pgstat_read_current_status(void)
i kildekoden og pgstat_clear_snapshot(void)
.