我有一个在晚上运行的 SP,有时它不会完成。我使用自动化运行的工具有一个选项,如果它没有完成,它可以在一段时间后终止工作,即它会在例如一小时后终止工作。
无论如何,我认为它有时没有在最大分配时间内完成的原因是因为它被另一个会话 ID 阻止。如何查询 DMV 的查询文本并准确找出阻塞会话中的内容。
我有这个查询,我知道阻塞会话 ID 和我的会话 ID。
SELECT TOP 100 w.session_id, w.wait_duration_ms, w.blocking_session_id, w.wait_type, e.database_id, D.name
FROM sys.dm_os_waiting_tasks w
LEFT JOIN sys.dm_exec_sessions e ON w.session_id = e.session_id
LEFT JOIN sys.databases d ON e.database_id = d.database_id
where w.session_id = x and w.blocking_session_id = y
order by w.wait_duration_ms desc
如何获取阻塞会话 ID 的内容(例如 SP 的名称)?