Editado: Por que os relatórios de sessões estão sendo bloqueados, mas aguardando com tipos de espera PAGELATCH_*
não relacionados?LCK_M_
Presumi anteriormente que o servidor SQL reportaria apenas as sessões de bloqueio na coluna blocking_session_Id. Se as sessões bloqueadas estivessem esperando por um bloqueio lógico e nada mais, como um arquivo 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 bloqueio de 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. Pode ser capaz, por exemplo, de adquirir um bloqueio exclusivo em uma linha em uma página, mas ainda ter que esperar para adquirir uma trava de página exclusiva (porque outras tarefas travaram a mesma página em um modo incompatível).
Em seu exemplo, as
PAGELATCH_EX
travas de página 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 pelo (*) no final de wait_info .Você pode encontrar a documentação (entradas de blog)
sp_WhoIsActive
aqui .