Tab DeadLock di ApsaraDB RDS for SQL Server menampilkan event deadlock untuk instans Anda, termasuk waktu mulai transaksi, ID sesi, resource yang terkunci, dan jenis deadlock. Gunakan informasi ini untuk mengidentifikasi dan memperbaiki pernyataan SQL serta transaksi yang menyebabkan deadlock.
Cara kerja
Ketika suatu transaksi memodifikasi sebuah resource, SQL Server mengunci resource tersebut untuk mencegah modifikasi bersamaan dan menjaga konsistensi data.
Deadlock terjadi ketika dua transaksi saling memegang kunci yang dibutuhkan oleh pihak lain. Misalnya, Transaksi A mengunci Resource A dan menunggu Resource B, sementara Transaksi B mengunci Resource B dan menunggu Resource A. Kedua transaksi tidak dapat dilanjutkan, sehingga SQL Server menghentikan salah satunya.

SQL Server memilih sesi yang akan dihentikan berdasarkan biaya rollback: sesi dengan transaksi yang dapat di-rollback dengan biaya terendah akan dihentikan, yang disebut sebagai deadlock victim. Sebagai contoh, jika terjadi deadlock antara sesi SELECT dan sesi UPDATE, SQL Server akan menghentikan sesi SELECT karena lebih murah untuk di-rollback.
Konsep utama
Jenis deadlock
ApsaraDB RDS for SQL Server mendeteksi jenis deadlock berikut:
KeyDeadlock
ObjectDeadLock
RIDDeadlock
PageDeadlock
ComplieDeadlock
Untuk detail tiap jenis, lihat Lock granularity and hierarchies.
Mode kunci
Mode kunci yang diterapkan pada sebuah resource bergantung pada jenis akses:
Shared (S): Resource dapat dibaca tetapi tidak dapat dimodifikasi hingga transaksi melepas kunci shared.
Update (U): Transaksi lain tidak dapat memodifikasi resource hingga transaksi tersebut mendapatkan kunci eksklusif pada resource tersebut.
Exclusive (X): Tidak ada transaksi lain yang dapat mengakses resource hingga transaksi yang mengunci melepas kunci eksklusif tersebut.
Prasyarat
Sebelum memulai, pastikan bahwa:
Instans RDS Anda tidak menjalankan SQL Server 2008 R2 dengan cloud disk.
Instans RDS Anda berada di salah satu wilayah berikut: Tiongkok (Hangzhou), Tiongkok (Shanghai), Tiongkok (Qingdao), Tiongkok (Beijing), Tiongkok (Zhangjiakou), Tiongkok (Hohhot), Tiongkok (Ulanqab), Tiongkok (Shenzhen), Tiongkok (Heyuan), Tiongkok (Guangzhou), Tiongkok (Chengdu), Tiongkok (Hong Kong), Singapura, atau UEA (Dubai).
Lihat detail deadlock
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS Anda berada, lalu klik ID instans tersebut.
Di panel navigasi sebelah kiri, pilih Autonomy Services > Lock Optimization.
Referensi tab DeadLock
Jumlah deadlock
Menampilkan jumlah deadlock dalam rentang waktu terkini. Tentukan rentang waktu untuk memfilter hasil.

Tren deadlock
Menampilkan distribusi jenis deadlock dalam rentang waktu tertentu.

Tetapkan start time dan waktu akhir, lalu klik Search. Rentang waktu tidak boleh melebihi 30 hari.
Klik Last 24 Hours, Last 7 Days, atau Last Month untuk menggunakan rentang waktu yang telah ditentukan.
Arahkan kursor ke titik data untuk melihat jenis dan jumlah deadlock pada waktu tersebut.
Gunakan ikon
di pojok kanan atas grafik untuk mengubah gaya tampilan atau mengunduh grafik sebagai gambar.
Detail deadlock

Klik ikon
di samping catatan deadlock untuk memperluas detail sesi yang memblokir dan yang diblokir.
| Field | Description |
|---|---|
| LastTranStarted | Waktu saat transaksi dimulai dalam sesi |
| SPID | ID sesi |
| IsVictim | Apakah sesi tersebut dihentikan sebagai deadlock victim |
| LogUsed | Ukuran log transaksi yang dihasilkan dalam sesi, dalam byte |
| LockMode | Mode kunci yang dipegang oleh sesi |
| WaitResourceDesc | Detail resource yang sedang ditunggu oleh transaksi |
| ObjectOwned | Objek yang dikunci oleh sesi |
| ObjectRequested | Objek yang coba dikunci oleh transaksi |
| WaitResource | Nama resource yang sedang ditunggu oleh transaksi |
| HostName | Host tempat transaksi dijalankan |
| LoginName | Akun yang digunakan untuk menjalankan transaksi |
| Status | Status transaksi dalam sesi |
| ClientApp | Klien yang memulai transaksi |
| SQLText | Pernyataan SQL yang dieksekusi dalam sesi. Klik pernyataan tersebut untuk menyalinnya guna analisis lebih lanjut. |
Klik catatan deadlock untuk membuka bagian Deadlock Diagram.
Diagram deadlock

Menampilkan hubungan antara sesi yang memblokir dan yang diblokir, beserta detail resource yang terkunci. Klik Download untuk mengunduh file XDL, lalu buka di SQL Server Management Studio (SSMS) guna melihat graf deadlock lengkap.
Langkah selanjutnya
Apa yang harus saya lakukan jika terjadi deadlock pada instans ApsaraDB RDS for SQL Server?