Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Apa itu kebuntuan dalam database?

Secara umum, kebuntuan berarti bahwa dua atau lebih entitas memblokir beberapa sumber, dan tidak satupun dari mereka yang dapat menyelesaikannya, karena mereka memblokir sumber secara siklik.

Salah satu contoh:Katakanlah saya memiliki tabel A dan tabel B, saya perlu melakukan beberapa pembaruan di A dan kemudian B dan saya memutuskan untuk mengunci keduanya pada saat penggunaan (ini adalah perilaku yang sangat bodoh, tetapi melayani tujuannya sekarang ). Pada saat yang sama, orang lain melakukan hal yang sama dalam urutan yang berlawanan - mengunci B terlebih dahulu, lalu mengunci A.

Secara kronologis, ini terjadi:

proc1:Kunci A

proc2:Kunci B

proc1:Kunci B - mulai menunggu hingga proc2 merilis B

proc2:Kunci A - mulai menunggu hingga proc1 merilis A

Tak satu pun dari mereka akan pernah selesai. Itu kebuntuan. Dalam praktiknya, hal ini biasanya menghasilkan kesalahan batas waktu karena tidak diinginkan untuk membuat kueri menggantung selamanya, dan sistem yang mendasarinya (misalnya database) akan mematikan kueri yang tidak selesai tepat waktu.

Salah satu contoh nyata dari kebuntuan adalah ketika Anda mengunci kunci rumah di mobil, dan kunci mobil di rumah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server:ekspor kueri sebagai file .txt

  2. Memilih baris pertama per grup

  3. Ubah Kata Sandi untuk Login SQL Server

  4. Di SQL Server, bagaimana saya bisa menemukan di mana pun kolom direferensikan?

  5. SQL Server dan Kerentanan Spectre/Meltdown