PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

pg_stat_activity nie aktualizuje się w ramach procedury lub transakcji

PostgreSQL tworzy pamięć podręczną na backend (efektywnie na połączenie) danych używanych przez pg_stat_get_activity() funkcja używana przez pg_stat_activity i pg_stat_replication .

Ta pamięć podręczna jest czyszczona podczas zatwierdzania/wycofywania, ale nie na końcu każdej instrukcji w transakcji w READ COMMITTED jak zwykle.

Możesz to wyraźnie wyczyścić za pomocą SELECT pg_stat_clear_snapshot() . Wywołaj to w ciele LOOP PL/PgSQL do odświeżenia.

AFAIK nie ma sposobu, aby poprosić PostgreSQL o automatyczne odświeżanie po każdej instrukcji, gdy używasz repeatable read lub wyższa izolacja.

W kodzie źródłowym zobacz pgstat_read_current_status(void) i pgstat_clear_snapshot(void) .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wysłać zapytanie do wszystkich wierszy w promieniu 5 mil od moich współrzędnych?

  2. Wyjątek w JPA podczas używania pliku seed dla PostgreSQL

  3. Kolejka zadań jako tabela SQL z wieloma konsumentami (PostgreSQL)

  4. Jak wyświetlić funkcję, procedurę, kod źródłowy wyzwalaczy w postgresql?

  5. Zwróć rekordy różne w jednej kolumnie, ale posortuj według innej kolumny