none
请问等待类型里的object的各个部分的意思 RRS feed

  • 问题

  • 查询sys.[dm_exec_requests]视图

    得到一些等待的资源,但是

    5代表dbid

    1607676775代表objectid

    11,2,6这些代表什么,msdn上面找不到相应解释,不知道各位知道不

     LCK_M_IX LCK_M_IX OBJECT: 5:1607676775:11 
    LCK_M_IX LCK_M_IX OBJECT: 5:1607676775:2 
    LCK_M_IS LCK_M_IS OBJECT: 5:1607676775:6 
    LCK_M_IS LCK_M_IS OBJECT: 5:1607676775:11  

    2014年9月16日 3:33

答案

  • 还需要限制一下查询的 resourcee_type

    SELECT 
    	REQ.wait_resource,
    	wait_resource1
    		= 'OBJECT: ' + RTRIM(L.resource_database_id) + ':' + RTRIM(L.resource_associated_entity_id) + ':' + RTRIM(l.resource_lock_partition),
    	* 
    FROM sys.dm_exec_requests REQ 
    	OUTER APPLY(
    		SELECT *
    		FROM sys.dm_tran_locks LL
    		WHERE LL.request_session_id = REQ.session_id
    			AND LL.request_status = 'WAIT'
    			AND LL.resource_type = 'OBJECT'
    
    	) L
    WHERE session_id > 50
    	AND wait_resource LIKE N'OBJECT:%'
    

    2014年9月17日 0:55

全部回复

  • Should be index id per sp_lock.
    2014年9月16日 4:00
  • 好的    
    2014年9月16日 5:01
  • maybe index id.

    那究竟是should be还是maybe

    2014年9月16日 5:55
  • 对应的关系应该是这个, resource_lock_partition 和分区表的分区不是同一个东东

    SET NOCOUNT ON;
    SELECT REQ.wait_resource, L.resource_database_id, L.resource_associated_entity_id, l.resource_lock_partition,
    	* 
    FROM sys.dm_exec_requests REQ 
    	OUTER APPLY(
    		SELECT *
    		FROM sys.dm_tran_locks LL
    		WHERE LL.request_session_id = REQ.session_id
    			AND LL.request_status = 'WAIT'
    
    	) L
    WHERE session_id > 50
    	AND wait_resource LIKE N'OBJECT:%'
    
    
    

    2014年9月16日 8:16
  • 邹建兄,你好像没有回答我的问题喔

    我是问

    OBJECT: 5:1607676775:11  里面11代表什么意思?

    我可以肯定的是:11不是rowid,indid,fileid

    2014年9月16日 11:44
  • 这个是锁资源的文本化描述,具体解析方法和资源种类有关。

    建议你直接查dm_tran_locks


    想不想时已是想,不如不想都不想。

    2014年9月16日 15:11
    版主
  • 联合过dm_tran_locks和syslockinfo

    资源种类是object

    所以只能猜到OBJECT: 5:1607676775:11

    5代表dbid

    1607676775代表objectid

    但是11不知道是什么

    2014年9月16日 23:59
  • 邹建兄,你好像没有回答我的问题喔

    我是问

    OBJECT: 5:1607676775:11  里面11代表什么意思?

    我可以肯定的是:11不是rowid,indid,fileid

    没看懂么? REQ.wait_resource 为 OBJECT:XX:XXX:XX 时

    第一个值:  L.resource_database_id

    第二个值: L.resource_associated_entity_id

    第三个值: l.resource_lock_partition

    2014年9月17日 0:46
  • 至于这三个列值的意义,查看 sys.dm_tran_locks

    对于 resource_associated_entity_id, 它表示多种类型,但我们查的是 OBJECT 对象,所以这个为 object_id

    2014年9月17日 0:48
  • 还需要限制一下查询的 resourcee_type

    SELECT 
    	REQ.wait_resource,
    	wait_resource1
    		= 'OBJECT: ' + RTRIM(L.resource_database_id) + ':' + RTRIM(L.resource_associated_entity_id) + ':' + RTRIM(l.resource_lock_partition),
    	* 
    FROM sys.dm_exec_requests REQ 
    	OUTER APPLY(
    		SELECT *
    		FROM sys.dm_tran_locks LL
    		WHERE LL.request_session_id = REQ.session_id
    			AND LL.request_status = 'WAIT'
    			AND LL.resource_type = 'OBJECT'
    
    	) L
    WHERE session_id > 50
    	AND wait_resource LIKE N'OBJECT:%'
    

    2014年9月17日 0:55
  • 请问周建兄在哪里找的资料,查了一些资料都没有说明
    2014年9月17日 1:26
  • 都在Books Online里面啊。

    想不想时已是想,不如不想都不想。

    2014年9月17日 2:01
    版主
  • 没有安装bol,有地址不
    2014年9月17日 2:04
  • 请问周建兄在哪里找的资料,查了一些资料都没有说明

    结合文档和数据推测出来的
    2014年9月18日 1:33