MSSQLSERVER_1205

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Detail

Atribut Value
Nama Produk Server SQL
ID Peristiwa 1205
Sumber Kejadian MSSQLSERVER
Komponen SQLEngine
Nama Simbolis LK_VICTIM
Teks Pesan Transaksi (ID Proses %d) di-deadlock pada %.*ls sumber daya dengan proses lain dan telah dipilih sebagai korban kebuntuan. Jalankan kembali transaksi.

Penjelasan

Sumber daya diakses dalam urutan yang bertentangan pada transaksi terpisah, menyebabkan kebuntuan. Misalnya:

  • Transaksi1 memperbarui Table1.Row1, sementara Transaction2 memperbarui Table2.Row2
  • Transaction1 mencoba memperbarui Table2.Row2 tetapi diblokir karena Transaction2 belum berkomitmen dan belum merilis kuncinya
  • Transaction2 sekarang mencoba memperbarui Table1.Row1 tetapi diblokir karena Transaction1 belum berkomitmen dan belum melepaskan kuncinya
  • Kebuntuan terjadi karena Transaksi1 menunggu Transaksi2 selesai, tetapi Transaksi2 menunggu Transaksi1 selesai.

Sistem akan mendeteksi kebuntuan ini dan akan memilih salah satu transaksi yang terlibat sebagai 'korban'. Kemudian akan mengeluarkan pesan kesalahan ini, menggulung balik transaksi korban. Untuk informasi mendetail, lihat Kebuntuan.

Tindakan Pengguna

Kebuntuan dalam kebanyakan kasus adalah masalah terkait aplikasi dan mengharuskan pengembang aplikasi untuk membuat perubahan kode. Salah satu pendekatan ketika Anda menerima kesalahan 1205 adalah menjalankan kueri lagi. Lihat blog ini untuk contoh cara mencoba kembali - menangani kebuntuan dan menjalankan kembali kueri: Aplikasi Simulator Kebuntuan untuk Pengembang: Cara Menangani masalah Kebuntuan SQL di Aplikasi Anda

Anda juga dapat merevisi aplikasi untuk menghindari kebuntuan. Transaksi yang dipilih sebagai korban dapat dicoba kembali dan kemungkinan akan berhasil, tergantung pada operasi apa yang dijalankan secara bersamaan.

Untuk mencegah atau menghindari kebuntuan terjadi, pertimbangkan untuk memiliki semua baris akses transaksi dalam urutan yang sama (Table1, lalu Table2). Dengan cara ini, meskipun pemblokiran mungkin terjadi, kebuntuan akan dihindari.

Untuk informasi selengkapnya, lihat Menangani KebunTuan dan Meminimalkan Kebuntuan.