All Products
Search
Document Center

Database Autonomy Service:Deadlock

Last Updated:Jun 21, 2026

Database Autonomy Service (DAS) menyediakan fitur Lock Optimization untuk ApsaraDB RDS for SQL Server. Anda dapat menggunakan fitur ini untuk melihat statistik deadlock dan detailnya pada instans database Anda.

Prasyarat

  • Fitur ini tidak didukung untuk instans ApsaraDB RDS for SQL Server 2008 R2 yang menggunakan cloud disk.

  • Instans harus berada di salah satu wilayah berikut:

    China (Hangzhou), China (Shanghai), China (Qingdao), China (Beijing), China (Zhangjiakou), China (Hohhot), China (Ulanqab), China (Shenzhen), China (Heyuan), China (Guangzhou), China (Chengdu), China (Hong Kong), Singapura, dan UEA (Dubai).

Informasi latar belakang

Ketika sebuah transaksi memodifikasi resource, transaksi tersebut menerapkan kunci untuk mencegah transaksi lain mengubahnya, sehingga menjamin konsistensi data.

Deadlock biasanya terjadi ketika beberapa transaksi bersaing memperebutkan resource. Misalnya, Transaksi A mengunci Resource A dan mencoba memodifikasi Resource B, sementara Transaksi B mengunci Resource B dan mencoba memodifikasi Resource A. Ketergantungan melingkar ini menyebabkan deadlock karena masing-masing transaksi menunggu transaksi lain melepaskan kuncinya. Sistem kemudian secara otomatis menghentikan sesi dengan biaya rollback terendah (sesi korban), sehingga tugasnya gagal. Gambar berikut mengilustrasikan skenario ini.

死锁

Jenis deadlock

Halaman Deadlock menampilkan statistik untuk lima jenis deadlock berikut:

  • KeyDeadlock

  • ObjectDeadlock

  • RIDDeadlock

  • PageDeadlock

  • CompileDeadlock

Mode lock

Ketika sebuah transaksi mengakses resource, transaksi tersebut menggunakan berbagai mode lock (LockMode) tergantung pada jenis aksesnya. Mode tersebut meliputi:

  • Shared lock (S): Mengizinkan resource dibaca tetapi tidak dimodifikasi selama lock aktif.

  • Update lock (U): Mencegah transaksi lain mendapatkan exclusive lock pada resource, sebagai indikasi niat untuk memodifikasinya. Lock ini biasanya digunakan untuk menghindari deadlock yang dapat terjadi ketika beberapa session mencoba membaca, mengunci, lalu memperbarui resource.

  • Exclusive lock (X): Mencegah transaksi lain mengakses resource tersebut.

Prosedur

  1. Masuk ke Konsol DAS.

  2. Di panel navigasi sebelah kiri, klik Intelligent O&M Center > Instance Monitoring.

  3. Temukan instans target dan klik ID instans untuk membuka halaman detail instans.

  4. Di panel navigasi sebelah kiri, klik Lock Optimization > DeadLock.

  5. Di halaman DeadLock, tinjau detail deadlock.

Ikhtisar halaman

  • Bagian Deadlock Count Overview menampilkan statistik untuk rentang waktu yang telah ditentukan, termasuk Last 24 Hours, Last 7 Days, Last 14 Days, dan Last Month.

  • Deadlock Trend死锁变化趋势

    Grafik ini menampilkan jenis deadlock yang terjadi dalam rentang waktu tertentu. Anda dapat melakukan operasi berikut:

    • Pilih Start time dan End time, lalu klik Search untuk menampilkan informasi deadlock dalam rentang waktu yang ditentukan.

      Catatan

      Rentang waktu tidak boleh melebihi 30 hari.

    • Klik Last 24 Hours, Last 7 Days, atau Last Month untuk langsung menampilkan informasi deadlock dalam rentang waktu yang dipilih.

    • Arahkan kursor ke titik pada grafik tren untuk melihat jenis dan jumlah deadlock yang terjadi pada waktu tersebut.

    • Klik ikon 图标 di pojok kanan atas grafik tren untuk mengganti gaya tampilan grafik atau mengunduhnya.

  • Deadlock Details

    Klik ikon 加号 di sebelah kiri catatan untuk memperluas catatan tersebut dan melihat detail sesi yang saling bergantung. Detail tersebut mencakup informasi berikut:

    • LastTranStarted: Waktu transaksi dimulai.

    • SPID: ID sesi yang memulai transaksi.

    • IsVictim: Menunjukkan apakah sesi tersebut merupakan korban deadlock.

      Catatan

      SQL Server menyelesaikan deadlock dengan menggunakan thread internal untuk mendeteksinya secara berkala. Setelah deadlock terdeteksi, SQL Server menghentikan sesi dengan biaya rollback lebih rendah di antara sesi yang terlibat. Misalnya, pernyataan SELECT biasanya memiliki biaya lebih rendah daripada pernyataan UPDATE, sehingga SQL Server memprioritaskan penghentian sesi yang menjalankan pernyataan SELECT.

    • LogUsed: Ukuran log yang dihasilkan oleh sesi. Satuan: byte.

    • LockMode: Mode lock. Untuk informasi selengkapnya, lihat Mode lock.

    • WaitResourceDesc: Deskripsi resource yang sedang ditunggu oleh transaksi saat ini.

    • ObjectOwned: Objek yang dikunci oleh sesi ini.

    • ObjectRequested: Objek yang coba dikunci oleh sesi.

    • WaitResource: Resource yang sedang ditunggu oleh transaksi.

    • HostName: hostname klien yang memulai transaksi.

    • LoginName: Nama akun yang digunakan untuk transaksi.

    • Status: Status saat ini dari transaksi.

    • ClientApp: Nama aplikasi klien yang digunakan untuk transaksi.

    • SQLText: Detail pernyataan SQL.

      Catatan

      Klik pernyataan SQL untuk membukanya di jendela baru. Klik Click to Copy untuk menyalin pernyataan tersebut guna troubleshooting atau analisis.

    Klik baris mana pun untuk menampilkan diagram deadlock yang sesuai di bawahnya.

  • Deadlock Diagram死锁关系图

    Diagram ini menampilkan hubungan antar sesi yang terlibat dalam deadlock dan memberikan detail tentang resource yang terkunci. Klik Download untuk mengunduh file XDL. File ini berisi detail lengkap deadlock saat ini dan dapat dibuka dengan klien SQL Server Management Studio (SSMS).