Look for table lock escalations
Look for table lock escalations.
Last updated:
Warning: Review and test in a non-production environment before running.
-- Look for table lock escalations (connect to the necessary database)
SELECT
dtl.request_session_id,
dtl.resource_type,
DB_NAME(dtl.resource_database_id) AS database_name,
OBJECT_NAME(dtl.resource_associated_entity_id) AS table_name,
dtl.request_mode,
dtl.request_type,
dtl.request_status,
(SELECT SUBSTRING(est.[text], ers.statement_start_offset/2 + 1,
(CASE WHEN ers.statement_end_offset = -1
THEN LEN(CONVERT(nvarchar(max), est.[text])) * 2
ELSE ers.statement_end_offset
END
- ers.statement_start_offset
) / 2)
FROM sys.dm_exec_requests AS ers
CROSS APPLY sys.dm_exec_sql_text(ers.[sql_handle]) AS est
WHERE ers.session_id = dtl.request_session_id) AS esculation_query_text
FROM sys.dm_tran_locks as dtl
INNER JOIN sys.all_objects AS aos ON dtl.resource_associated_entity_id = aos.[object_id]
WHERE dtl.request_type = 'LOCK'
AND dtl.request_status = 'GRANT'
AND dtl.request_mode IN ('X', 'S')
AND aos.[type] = 'U'
AND dtl.resource_type = 'OBJECT'
AND dtl.resource_database_id = DB_ID()