Saya sebelumnya berasumsi bahwa SQL Server hanya akan melaporkan sesi pemblokiran di kolom blocking_session_id, jika sesi diblokir sedang menunggu kunci logis dan bukan hal lain seperti a PAGELATCH_*
.
Anda menggunakan sp_WhoIsActive
prosedur Adam Machanic , bukan fasilitas SQL Server bawaan. Prosedur Adam melaporkan semua penyebab pemblokiran yang 'menarik', bukan hanya pemblokiran kunci. Informasi yang mendasarinya berasal dari berbagai sumber, termasuk sysprocesses , sys.dm_exec_requests , dan sys.dm_os_waiting_tasks .
Suatu tugas dapat menunggu hal-hal lain selain kunci. Mungkin dapat, misalnya, untuk memperoleh kunci eksklusif pada baris pada halaman, tetapi kemudian masih harus menunggu untuk mendapatkan kait halaman eksklusif (karena tugas lain telah mengunci halaman yang sama dalam mode yang tidak kompatibel).
Dalam contoh Anda, PAGELATCH_EX
kait halaman eksklusif ada pada data biasa atau halaman indeks, bukan halaman PFS, GAM, SGAM, DCM, atau BCM, seperti yang ditunjukkan oleh (*) di akhir wait_info .
Anda dapat menemukan dokumentasi (entri blog) untuk di sp_WhoIsActive
sini .