使用 PAGELATCH_* 等待类型等待的阻塞会话?
-
29-09-2020 - |
解决方案
我之前假设 SQL Server 只会在blocking_session_id 列中报告阻塞会话,如果阻塞会话正在等待逻辑锁而不是其他任何内容(例如
PAGELATCH_*
.
您正在使用 Adam Machanic 的 sp_WhoIsActive
过程,而不是内置的 SQL Server 工具。Adam 的过程报告了所有“有趣”的阻塞原因,而不仅仅是锁阻塞。基础信息来自各种来源,包括 系统进程, sys.dm_exec_requests, , 和 sys.dm_os_waiting_tasks.
除了锁之外,任务还可以等待其他事物。例如,它可能能够获取页面上一行的排他锁,但仍然必须等待获取排他页面 闩锁 (因为其他任务以不兼容的模式锁定了同一页)。
在你的例子中, PAGELATCH_EX
独占页锁存器位于常规数据或索引页上,而不是 PFS、GAM、SGAM、DCM 或 BCM 页上,如页末尾的 (*) 所示 等待信息.
您可以找到以下文档(博客条目): sp_WhoIsActive
这里.
不隶属于 dba.stackexchange