Eu supus anteriormente que o SQL Server reportaria apenas uma sessão de bloqueio na coluna blocking_session_id, se as sessões bloqueadas estivessem aguardando um bloqueio lógico e não qualquer outra coisa como a PAGELATCH_*
.
Você está usando o sp_WhoIsActive
procedimento de Adam Machanic , não um recurso interno do SQL Server. O procedimento de Adam relata todas as causas 'interessantes' de bloqueio, não apenas o bloqueio. As informações subjacentes vêm de várias fontes, incluindo sysprocesses , sys.dm_exec_requests e sys.dm_os_waiting_tasks .
Uma tarefa pode esperar por outras coisas além de um bloqueio. Por exemplo, pode ser possível adquirir um bloqueio exclusivo em uma linha de uma página, mas ainda é necessário aguardar para obter uma trava de página exclusiva (porque outras tarefas travaram a mesma página em um modo incompatível).
No seu exemplo, as PAGELATCH_EX
travas de páginas exclusivas estão em páginas regulares de dados ou de índice, não em páginas PFS, GAM, SGAM, DCM ou BCM, conforme indicado por (*) no final do wait_info .
Você pode encontrar a documentação (entradas do blog) sp_WhoIsActive
aqui .