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

Điều gì có thể gây ra tình trạng không hoạt động trong giao dịch đối với các câu lệnh BEGIN

Các giao dịch không bị chặn ở tất cả. Cơ sở dữ liệu đang đợi ứng dụng gửi câu lệnh tiếp theo.

Khóa trên ID giao dịch chỉ là một kỹ thuật để các giao dịch chặn lẫn nhau, ngay cả khi chúng không cạnh tranh để khóa bảng (ví dụ:nếu chúng đang chờ khóa hàng):mỗi giao dịch giữ một khóa riêng. ID giao dịch và nếu phải đợi một giao dịch đồng thời hoàn tất, nó có thể yêu cầu khóa ID của giao dịch đó (và bị chặn).

Nếu tất cả các giao dịch trông như thế này, thì khóa phải ở đâu đó trong ứng dụng của bạn; cơ sở dữ liệu không liên quan.

Khi tìm kiếm các quy trình bị chặn trong cơ sở dữ liệu, hãy tìm các hàng trong pg_locks nơi granted là sai.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mảng chuỗi Ruby / Rails để chèn PostgreSQL

  2. Laravel 5.3 Các giao dịch hùng hồn và các hạn chế về khóa ngoại

  3. Công bố repmgr 2.0

  4. postgresql 9.5:cố gắng chia một chuỗi thành hai trường dựa trên dấu cách

  5. Mã hóa dữ liệu trong postgresql