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;
--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);
-- 通过 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);