Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Detail
| Atribut | Nilai |
|---|---|
| Nama Produk | SQL Server |
| 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. Contohnya:
-
Transaction1memperbaruiTable1.Row1, sementara Transaction2 memperbaruiTable2.Row2 -
Transaction1mencoba memperbaruiTable2.Row2tetapi diblokir karenaTransaction2belum berkomitmen dan belum melepaskan kuncinya - Transaction2 sekarang mencoba memperbarui
Table1.Row1tetapi diblokir karenaTransaction1belum berkomitmen dan belum melepaskan kuncinya - Kebuntuan terjadi karena
Transaction1menungguTransaction2selesai, tetapiTransaction2menungguTransaction1selesai.
Sistem mendeteksi kebuntuan ini dan memilih salah satu transaksi yang terlibat sebagai korban . Kemudian 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. Untuk informasi selengkapnya, lihat aplikasi Deadlock Simulator 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 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 dihindari.
Untuk informasi selengkapnya, lihat Menangani KebunTuan dan Meminimalkan Kebuntuan.