查看SQL块/锁?

时间:2015-11-02 13:50:01

标签: sql tsql

我想知道是否有工具或方法来查看哪些语句导致阻塞/锁定以及哪些对象会受到影响?我知道sp_who和sp_who2,但这些仅在系统运行时有效。

例如,我知道运行这个:

UPDATE myTable SET col1 = 'something' 

将锁定" myTable",但有更复杂的情况(如嵌套的触发器和触发器)更难以识别。

我希望得到类似"实际执行计划"内置SSMS,但其他工具,查询就足够了

全部谢谢

2 个答案:

答案 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实例)获取当前锁定数量的列表等,您可以使用当前“进程”面板的“任务状态”列查看当前运行语句,告诉你事情是否阻塞。

这些都集中在当前正在执行的活动上,所以我不确定这是你想要的。