Editado: por que os relatórios de sessões estão sendo bloqueados, mas aguardando PAGELATCH_*
e não LCK_M_
relacionados a tipos de espera?
Eu supus anteriormente que o SQL Server reportaria apenas sessões de bloqueio na coluna blocking_session_Id. Se as sessões bloqueadas estavam aguardando um bloqueio lógico e não qualquer outra coisa, como a PAGELATCH_*
.
sql-server
sql-server-2014
optimization
locking
wait-types
Pixelated
fonte
fonte
Respostas:
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 .fonte