我想知道是否有工具或方法来查看哪些语句导致阻塞/锁定以及哪些对象会受到影响?我知道sp_who和sp_who2,但这些仅在系统运行时有效。
例如,我知道运行这个:
UPDATE myTable SET col1 = 'something'
将锁定" myTable",但有更复杂的情况(如嵌套的触发器和触发器)更难以识别。
我希望得到类似"实际执行计划"内置SSMS,但其他工具,查询就足够了
全部谢谢
答案 0 :(得分:2)
您可以参考此blog并按照不同的方式识别这些块:
- sp_who2系统存储过程
- sys.dm_exec_requests DMV
- Sys.dm_os_waiting_tasks
- SQL Server Management Studio活动监视器
- SQL Server Management Studio报告
- SQL Server Profiler
同时检查:Different techniques to identify blocking in SQL Server
答案 1 :(得分:0)
您可以使用SQL Activity Monitor(右键单击SSMS中的SQL实例)获取当前锁定数量的列表等,您可以使用当前“进程”面板的“任务状态”列查看当前运行语句,告诉你事情是否阻塞。
这些都集中在当前正在执行的活动上,所以我不确定这是你想要的。