PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Apa yang dapat menyebabkan idle dalam transaksi untuk pernyataan BEGIN

Transaksi tidak memblokir sama sekali. Basis data sedang menunggu aplikasi untuk mengirim pernyataan berikutnya.

Penguncian pada ID transaksi hanyalah teknik agar transaksi saling memblokir, bahkan jika mereka tidak bersaing untuk kunci tabel (misalnya, jika mereka menunggu kunci baris):setiap transaksi memiliki kunci eksklusif sendiri ID transaksi, dan jika harus menunggu transaksi bersamaan selesai, ia dapat meminta penguncian pada ID transaksi tersebut (dan diblokir).

Jika semua transaksi terlihat seperti ini, maka kuncinya pasti ada di suatu tempat di aplikasi Anda; database tidak terlibat.

Saat mencari proses yang diblokir di database, cari baris di pg_locks di mana granted salah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. java.lang.IllegalArgumentException:im ==null?

  2. PgAdmin di Windows 10 dengan Postgres saat diinstal melalui Bash di Ubuntu di Windows

  3. Sisipan/pembaruan massal Postgres yang aman untuk injeksi. Mungkin fungsi yang menggunakan array?

  4. Di mana output file pg_dump pergi di MacOS?

  5. Konversi DateTime ke Waktu NHibernate Postgresql