Kebuntuan sesekali pada RDBMS yang terkunci seperti SQL Server/Sybase diharapkan.
Anda dapat membuat kode pada klien untuk mencoba lagi seperti yang direkomendasikan MSDN "Menangani Kebuntuan" .Pada dasarnya, periksa SQLException dan mungkin setengah detik kemudian, coba lagi.
Jika tidak, Anda harus meninjau kode Anda sehingga semua akses ke tabel berada dalam urutan yang sama. Atau Anda dapat menggunakan SET DEADLOCK_PRIORITY untuk mengontrol siapa yang menjadi korban.
Di MSDN untuk SQL Server ada "Meminimalkan Deadlock" yang dimulai
Ini juga menyebutkan "Gunakan Tingkat Isolasi yang Lebih Rendah" yang tidak saya sukai (sama seperti banyak jenis SQL di sini di SO) dan merupakan pertanyaan Anda. Jangan lakukan itu jawabannya... :-)
- Apa yang dapat terjadi akibat penggunaan (nolock) pada setiap SELECT di SQL Server?
- https://dba.stackexchange.com/q/2684/630
Catatan:MVCC ketik RDBMS (Oracle, Postgres) tidak memiliki masalah ini. Lihat http://en.wikipedia.org/wiki/ACID#Locking_vs_multiversioning tetapi MVCC memiliki masalah lain.