PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

pg_stat_activity không cập nhật trong một thủ tục hoặc giao dịch

PostgreSQL tạo bộ nhớ đệm cho mỗi phần phụ trợ (mỗi kết nối, một cách hiệu quả) của dữ liệu được sử dụng bởi pg_stat_get_activity() hàm được sử dụng bởi cả pg_stat_activitypg_stat_replication .

Bộ đệm ẩn này được xóa khi cam kết / khôi phục, nhưng không bị xóa ở cuối mỗi câu lệnh trong giao dịch trong READ COMMITTED như thường lệ.

Bạn có thể xóa nó một cách rõ ràng bằng SELECT pg_stat_clear_snapshot() . Gọi nó trong phần thân của LOOP PL / PgSQL để làm mới.

AFAIK không có cách nào để yêu cầu PostgreSQL tự động làm mới sau mỗi câu lệnh khi sử dụng repeatable read hoặc cách ly cao hơn.

Trong mã nguồn, hãy xem pgstat_read_current_status(void)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. Chèn giá trị DEFAULT vào cột khi tham số là NULL

  2. Làm thế nào để hiển thị hàm, thủ tục, kích hoạt mã nguồn trong postgresql?

  3. Sqlalchemy và PostgreSql:Làm thế nào để đặt khóa chính theo cách thủ công mà không có xung đột trong tương lai?

  4. Sử dụng kết nối SSL PostgreSQL không gỉ với chứng chỉ tự ký

  5. Thêm tên bảng vào mỗi cột trong tập hợp kết quả trong SQL? (Cụ thể là Postgres)