当前位置: 代码迷 >> Sql Server >> 下述各话语SQL语句有区别
  详细解决方案

下述各话语SQL语句有区别

热度:36   发布时间:2016-04-24 10:44:01.0
下述各语句SQL语句有区别
语句1、
 select * from sys.dm_tran_locks
 where request_mode='X'  
语句2、   
 select * from sys.sysprocesses 
 where blocked>0 and spid<>blocked   
语句3、   
select * from master..sysprocesses
 where blocked>0 and spid<>blocked   

1. 上述语句语句1、语句2和语句3是不是都找出SQL Server一个实例中的所有排它锁,若不是有什么区别?
2.若上述语句不是都找出SQL Server一个实例中的所有排它锁,那么语句2与语句3的功能是一模一样的吧?

谢谢!

   
------解决方案--------------------
2、3是一样的,那个只是找有阻塞的而已,跟锁没关系
------解决方案--------------------
语句2,语句3等价.

建议LZ上MSDN查一下这几个DMV的定义比较好喔,
并了解一下进程,锁,阻塞的概念和关系.
------解决方案--------------------
2和3是一样的

1是找出会话申请的锁模式为排他锁X的记录,主要是可以了解后去了哪些锁,什么模式

而2和3是找出被阻塞的会话,以及被哪个会话阻塞了
  相关解决方案