Anteriormente supuse que SQL Server solo informaría una sesión de bloqueo en la columna block_session_id, si las sesiones bloqueadas esperaban un bloqueo lógico y no otra cosa como a PAGELATCH_*
.
Está utilizando el sp_WhoIsActive
procedimiento de Adam Machanic , no una instalación de SQL Server incorporada. El procedimiento de Adam informa todas las causas 'interesantes' de bloqueo, no solo el bloqueo de bloqueo. La información subyacente proviene de varias fuentes, incluidos sysprocesses , sys.dm_exec_requests y sys.dm_os_waiting_tasks .
Una tarea puede esperar otras cosas además de una cerradura. Es posible que, por ejemplo, pueda adquirir un bloqueo exclusivo en una fila de una página, pero aún así tenga que esperar para adquirir un bloqueo de página exclusivo (porque otras tareas han bloqueado la misma página en un modo incompatible).
En su ejemplo, los PAGELATCH_EX
pestillos de página exclusivos se encuentran en páginas de datos o índice normales, no en páginas PFS, GAM, SGAM, DCM o BCM, como se indica con el (*) al final de wait_info .
Puede encontrar la documentación (entradas de blog) sp_WhoIsActive
aquí .