首页 > 代码库 > 自己收集脚本

自己收集脚本

查询某session上持有的锁资源

USE AdventureWorksGOSELECT 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
View Code