Sql-Server
阻塞的會話等待 PAGELATCH_* 等待類型?
已編輯:為什麼會話報告被阻止但正在等待
PAGELATCH_*
,而不是LCK_M_
相關的等待類型?我之前假設 SQL Server 只會在 blocking_session_Id 列中報告阻塞會話。如果被阻止的會話正在等待邏輯鎖,而不是其他任何東西,例如
PAGELATCH_*
.
我之前假設 SQL Server 只會在 blocking_session_id 列中報告阻塞會話,如果阻塞會話正在等待邏輯鎖而不是其他任何東西,例如
PAGELATCH_*
.您使用的是 Adam Machanic 的
sp_WhoIsActive
過程,而不是內置的 SQL Server 工具。Adam 的過程報告了所有“有趣”的阻塞原因,而不僅僅是鎖阻塞。底層資訊來自各種來源,包括sysprocesses、sys.dm_exec_requests和sys.dm_os_waiting_tasks。一個任務可以等待除鎖之外的其他東西。例如,它可能能夠獲取頁上一行的排他鎖,但仍然必須等待獲取排他頁鎖存器(因為其他任務以不兼容的模式鎖存了同一頁)。
在您的範例中,
PAGELATCH_EX
獨占頁面鎖存器位於正常數據或索引頁面上,而不是 PFS、GAM、SGAM、DCM 或 BCM 頁面上,如wait_info末尾的 (*) 所示。
sp_WhoIsActive
您可以在此處找到文件(部落格條目)。