sqlserver 如何检测事务阻塞的sql


-- sys.dm_tran_locks :返回 SQL Server中有关当前活动的锁管理器资源的信息。 
--向锁管理器发出的已授予锁或正等待授予锁的每个当前活动请求分别对应一行
SELECT 
  request_session_id            AS spid,
  resource_type                 AS restype,
  resource_database_id          AS dbid,
  DB_NAME(resource_database_id) AS dbname,
  resource_description          AS res,
  resource_associated_entity_id AS resid,
  request_mode                  AS mode,
  request_status                AS status
FROM sys.dm_tran_locks;

sqlserver 如何检测事务阻塞的sql

--sys.dm_exec_connections:返回有关与此 SQL Server 实例建立的连接的信息以及每个连接的详细信息。
-- 返回 SQL Server 的服务器范围的连接信息。 返回当前 SQL 数据库的数据库连接信息。
SELECT
  session_id AS spid,
  connect_time,
  last_read,
  last_write,
  most_recent_sql_handle
FROM sys.dm_exec_connections
WHERE session_id IN(57,54);

sqlserver 如何检测事务阻塞的sql

-- 通过  CROSS APPLY  sys.dm_exec_sql_text 获取执行的 连接执行的sql 语句
SELECT session_id, text 
FROM sys.dm_exec_connections
  CROSS APPLY sys.dm_exec_sql_text(most_recent_sql_handle) AS ST 
WHERE session_id IN(57, 54);sqlserver 如何检测事务阻塞的sql