查询某session上持有的锁资源
USE AdventureWorks GO SELECT DB_NAME(resource_database_id) AS [DataBase] ,resource_type --DATABASE、FILE、OBJECT、PAGE、KEY、EXTENT、RID、APPLICATION、METADATA、HOBT 或 ALLOCATION_UNIT --,resource_subtype ,resource_associated_entity_id ,CASE WHEN resource_type=‘OBJECT‘ THEN (SELECT OBJECT_NAME(object_id) FROM sys.objects O WITH(NOLOCK) WHERE O.object_id=L.resource_associated_entity_id) WHEN resource_type IN(‘KEY‘,‘PAGE‘,‘RID‘,‘HOBT‘,‘METADATA‘) THEN ( SELECT OBJECT_NAME(object_id) FROM sys.partitions P WITH(NOLOCK) WHERE P.hobt_id=L.resource_associated_entity_id) END AS Resource_type_name ,request_mode ,request_type ,request_status ,request_reference_count ,request_session_id ,request_request_id ,request_owner_type --TRANSACTION = 请求由事务所有。CURSOR = 请求由游标所有。SESSION = 请求由用户会话所有。 --SHARED_TRANSACTION_WORKSPACE = 请求由事务工作区的共享部分所有。EXCLUSIVE_TRANSACTION_WORKSPACE = 请求由事务工作区的排他部分所有。 -- NOTIFICATION_OBJECT = 请求由内部 SQL Server 组件所有。 此组件已经请求锁管理器在有其他组件等待获取锁时进行通知。 FileTable 功能是使用此值的一个组件。 ,request_owner_id FROM sys.dm_tran_locks as L with(nolock) WHERE request_session_id=62
自己收集脚本
时间: 2024-11-01 01:32:39