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

Co może powodować bezczynność w transakcji dla instrukcji BEGIN

Transakcje w ogóle się nie blokują. Baza danych czeka, aż aplikacja wyśle ​​następne oświadczenie.

Blokada na identyfikatorze transakcji to tylko technika blokowania się nawzajem transakcji, nawet jeśli nie walczą o blokadę tabeli (na przykład, jeśli czekają na blokadę wiersza):każda transakcja posiada własną blokadę na wyłączność ID transakcji, a jeśli musi czekać na zakończenie równoczesnej transakcji, może po prostu zażądać blokady na ID tej transakcji (i zostać zablokowane).

Jeśli wszystkie transakcje wyglądają tak, to blokada musi znajdować się gdzieś w aplikacji; baza danych nie jest zaangażowana.

Szukając procesów zablokowanych w bazie danych, poszukaj wierszy w pg_locks gdzie granted jest fałszywe.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql — twórz dynamicznie bazę danych i tabelę

  2. Zapytanie PostgreSQL do zwrócenia wyników w postaci listy oddzielonej przecinkami

  3. Napraw „BŁĄD:kolumna „colname” nie istnieje” w PostgreSQL podczas korzystania z UNION, EXCEPT lub INTERSECT

  4. Heroku przenosi db z jednej aplikacji do drugiej

  5. Szybkie zapytanie do normalizacji danych SQL