Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何找出页锁属于哪个表_Sql Server_Sql Server 2008_Locking - Fatal编程技术网

Sql server 如何找出页锁属于哪个表

Sql server 如何找出页锁属于哪个表,sql-server,sql-server-2008,locking,Sql Server,Sql Server 2008,Locking,我正在使用sys.dm_tran_locks视图检查数据库中的哪些区域在出现性能问题时有锁 使用此视图 如果资源类型是数据库,我可以使用DB\u NAME函数找出哪个数据库有锁 如果它是一个对象,我通常可以连接到sys.tables以检查它是什么表 但是,如果资源类型为页面或键,是否有办法将其追溯到其父表,以便我能很好地了解哪些表处于锁定状态?这就是资源关联的\u实体id列的作用() 您必须找到与该资源相关联的object_id,它可能涉及到连接到另一个表。比如说, SELECT *, OB

我正在使用sys.dm_tran_locks视图检查数据库中的哪些区域在出现性能问题时有锁

使用此视图

  • 如果资源类型是数据库,我可以使用DB\u NAME函数找出哪个数据库有锁

  • 如果它是一个对象,我通常可以连接到sys.tables以检查它是什么表


但是,如果资源类型为页面,是否有办法将其追溯到其父表,以便我能很好地了解哪些表处于锁定状态?

这就是
资源关联的\u实体id
列的作用()


您必须找到与该资源相关联的object_id,它可能涉及到连接到另一个表。比如说,

SELECT *, OBJECT_NAME(p.object_id) 
FROM sys.dm_tran_locks l    
JOIN sys.partitions p 
ON l.resource_associated_entity_id = p.hobt_id 
WHERE resource_type = 'KEY'
在联机丛书中查找sys.dm_tran_locks,了解每个资源的联接表应该是什么

SELECT *, OBJECT_NAME(p.object_id) 
FROM sys.dm_tran_locks l    
JOIN sys.partitions p 
ON l.resource_associated_entity_id = p.hobt_id 
WHERE resource_type = 'KEY'