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

Teka-teki kebuntuan:Korban tidak memiliki sumber daya apa pun, digunakan untuk membunuh untuk menyelesaikan kebuntuan

Dalam konteks penguncian, tabel dan indeks terkaitnya adalah entitas yang terpisah. Terkadang, penguncian mati terjadi antara tabel dan indeksnya, bukan antara dua tabel terpisah.

Masalahnya kemungkinan besar ketika kunci diperoleh pada indeks dan kemudian kunci lain diperoleh pada tabel terkait (yaitu bar) untuk melakukan pencarian data. Selama penyisipan, ini akan terjadi dalam urutan yang berlawanan. Pertama, tabel (yaitu bar) dikunci dan diperbarui, kemudian indeks dikunci.

select foo 
from bar 
where @someId = 0 OR SomeId = @someId

Apakah Anda memiliki/dapatkah Anda menambahkan indeks penutup (untuk membantu memilih) yang berisi SomeId dan foo ? Dengan cara ini Anda akan menghindari pencarian sama sekali dan menghentikan masalah agar tidak terjadi.

Bisakah Anda memposting rencana kueri daripada bingkai kebuntuan?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apa itu DTU di Database Azure SQL dan Bagaimana Mengetahui Berapa Banyak yang Kita Butuhkan

  2. Secara terprogram menghasilkan skrip untuk semua objek dalam database

  3. Cara Memperbaiki "Konversi gagal saat mengonversi nilai ke tipe data" di SQL Server

  4. Bagaimana cara memetakan BigDecimal di Hibernate sehingga saya mendapatkan kembali skala yang sama dengan yang saya masukkan?

  5. Masalah ASP klasik saat menyambung ke database SQL Server jarak jauh