SQL Server: Como identificar objetos em Lock
- Siltech Consult
- 8 de out. de 2019
- 1 min de leitura
No SQL Server quando ocorrem locks (e existem locks até para SELECT) fica complicado identificar a causa do Lock, até mesmo porque em cada versão do SQL as views e as procedures usadas podem mudar. Este SQL ajuda à verificar locks em versões SQL Server 2008 R2. Espero que ajude:
SELECT
t1.resource_type,
t1.resource_database_id,
t1.resource_associated_entity_id,
t1.request_mode,
t1.request_session_id,
t2.blocking_session_id,
o1.name 'object name',
o1.type_desc 'object descr',
p1.partition_id 'partition id',
p1.rows 'partition/page rows',
a1.type_desc 'index descr',
a1.container_id 'index/page container_id'
FROM sys.dm_tran_locks as t1
INNER JOIN sys.dm_os_waiting_tasks as t2
ON t1.lock_owner_address = t2.resource_address
LEFT OUTER JOIN sys.objects o1 on o1.object_id = t1.resource_associated_entity_id
LEFT OUTER JOIN sys.partitions p1 on p1.hobt_id = t1.resource_associated_entity_id
LEFT OUTER JOIN sys.allocation_units a1 on a1.allocation_unit_id = t1.resource_associated_entity_id
Dúvidas? silverio@siltechconsult.com.br