sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvad kan forårsage tomgang i transaktionen for BEGIN-udsagn

Transaktionerne blokerer slet ikke. Databasen venter på, at applikationen sender den næste erklæring.

Låsen på transaktions-id'et er blot en teknik til, at transaktioner blokerer hinanden, selvom de ikke kæmper om en bordlås (f.eks. hvis de venter på en rækkelås):hver transaktion har en eksklusiv lås for sig selv transaktions-id, og hvis den skal vente på, at en samtidig transaktion er fuldført, kan den blot anmode om en låsning af den pågældende transaktions ID (og blive blokeret).

Hvis alle transaktioner ser sådan ud, så skal låsen være et sted i din applikation; databasen er ikke involveret.

Når du leder efter processer, der er blokeret i databasen, skal du kigge efter rækker i pg_locks hvor granted er falsk.



  1. Sådan udføres en procedure inde i en pakke i Oracle

  2. Hvordan opretter man forbindelse til mssql ved hjælp af pdo gennem PHP og Linux?

  3. Sådan installeres SQL * PLUS-klient i linux

  4. Sådan bestiller du efter dato i T-SQL