Topik ini menjelaskan cara menggunakan halaman statistik lock blocking untuk mengidentifikasi sesi yang menyebabkan blocking berkepanjangan dan melihat detailnya.
Prasyarat
-
Instans harus menggunakan cloud disk.
-
Fitur ini tidak tersedia untuk instans ApsaraDB RDS for SQL Server 2008 R2 yang menggunakan cloud disk.
-
Fitur ini hanya tersedia untuk instans ApsaraDB RDS for SQL Server di 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, atau UEA (Dubai).
Informasi latar belakang
Di SQL Server, untuk menjaga konsistensi data, sistem akan mengunci suatu resource saat sesi memodifikasinya. Hal ini mencegah sesi konkuren lain mengakses atau memodifikasi resource yang sama. Dalam kondisi normal, kunci tersebut hanya dipertahankan dalam waktu singkat dan dilepas setelah modifikasi selesai, sehingga sesi berikutnya dapat mengakses resource tersebut. Namun, masalah seperti pernyataan SQL yang lambat dapat menyebabkan resource terkunci dalam periode yang lama, yang berdampak signifikan terhadap kinerja.
Untuk mengatasi masalah ini, ApsaraDB RDS for SQL Server menyediakan halaman statistik lock blocking. Di halaman ini, Anda dapat dengan cepat menemukan informasi seperti Server Process ID (SPID) dari sesi yang menyebabkan blocking, waktu terjadinya blocking, dan pernyataan SQL yang menyebabkan blocking tersebut. Informasi ini membantu Anda mengidentifikasi akar permasalahan.
Cara kerja
Sesi yang terblokir selama sekitar 2 detik biasanya tidak menimbulkan masalah besar. Namun, jika beberapa sesi berulang kali terblokir lebih dari 2 detik dalam periode singkat, hal ini dapat berdampak signifikan terhadap keseluruhan sistem.
Sistem melakukan pengambilan sampel lock blocking setiap 10 detik. Pada setiap titik sampling, jika suatu sesi telah mengeksekusi pernyataan SQL lebih dari 2 detik dan sedang memblokir sesi lain, sistem akan menangkap dan mencatatnya di halaman statistik lock blocking.
Prosedur
Buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans RDS berada. Lalu, temukan instans RDS tersebut dan klik ID instansnya.
-
Di panel navigasi kiri, pilih Autonomy Services > Lock Optimization.
-
Klik tab Blocking untuk melihat detail blocking pada instans tersebut.
Deskripsi halaman
-
Blocking Overview
Menampilkan jumlah event blocking dalam rentang waktu tertentu.
Rentang waktu mencakup Last 24 Hours, Last 7 Days, Last 14 Days, dan Last 30 Days.
-
Blocking Duration Trend
Menampilkan grafik tren durasi blocking untuk periode waktu yang dipilih.
Arahkan kursor ke titik waktu tertentu untuk melihat detail blocking-nya, yang mencakup hal-hal berikut:
-
Waktu terjadinya blocking.
-
Processes_blocked: Jumlah sesi yang terblokir.
-
Uncommited_tran: Jumlah transaksi yang belum dikomit.
CatatanTransaksi yang belum dikomit tidak melepas kunci.
QueryHash (nilai hash dari pernyataan SQL tertentu) dan waktu blocking terkait.

-
-
Blocking Source Details
Menampilkan informasi detail tentang sumber blocking. Detail tersebut mencakup hal-hal berikut:
-
SPID: SPID dari sesi yang menyebabkan blocking.
-
QueryHash: Nilai hash yang dihasilkan dari pernyataan SQL. Pernyataan SQL dengan tipe yang sama memiliki QueryHash yang sama.
-
Wait Type: Alasan sesi yang menunggu terblokir. Untuk informasi lebih lanjut mengenai wait types, lihat Wait Types.
-
Execution Duration (ms): Durasi sesi tersebut telah berjalan.
-
SQL: Pernyataan SQL yang menyebabkan blocking.
CatatanArahkan kursor ke pernyataan SQL dan klik ikon
yang muncul di sebelah kanan untuk menyalin pernyataan SQL tersebut. -
Time: Waktu terjadinya blocking.
-
Database Name: Nama database tempat blocking terjadi.
Klik di mana saja pada baris untuk melihat Diagram Blocking yang sesuai di bagian bawah halaman.
-
-
Blocking Diagram
Menampilkan SPID yang memblokir (merah), SPID yang diblokir (biru), tipe kunci, dan durasi blocking. Untuk informasi lebih lanjut mengenai tipe kunci, lihat Lock Types.

Arahkan kursor ke SPID untuk melihat detail blocking-nya, yang mencakup hal-hal berikut:
-
SPID: ID proses server.
-
BlockedBySpid: SPID dari sesi yang menyebabkan blocking.
-
WaitType: Tipe tunggu.
-
WaitTimeMs: Durasi pemblokiran dalam milidetik.
-
CMD: Tipe perintah SQL untuk sesi saat ini.
-
CPU: Waktu CPU, dalam milidetik.
-
DBName: Nama database.
-
ClientAppName: Nama aplikasi klien.
-
HostName: hostname klien.
-
LoginId: username.
-
PhysicalIO: I/O yang dikonsumsi oleh sesi saat ini. 1 PhysicalIO setara dengan 8 KB.
-
QueryHash: Nilai hash yang dihasilkan dari pernyataan SQL. Pernyataan SQL dengan tipe yang sama memiliki QueryHash yang sama.
-
StartTime: Waktu mulai batch saat ini. Satu batch dapat berisi beberapa pernyataan SQL dan berbagi resource seperti nilai variabel.
-
Status: Status sesi saat ini.
-
SQL: Klik SPID merah atau biru untuk menampilkan detail eksekusi SQL di bawah Blocking Diagram.
-
-
SQL Details
Di Blocking Diagram, klik SPID merah atau biru untuk menampilkan detail eksekusi SQL untuk sesi tersebut. Klik Click to Copy untuk dengan cepat menyalin pernyataan SQL guna analisis atau troubleshooting.