在 SQL Server 中,您可以通過跟蹤活動(dòng)監(jiān)視器中的阻塞進(jìn)程來識(shí)別阻塞。以下是使用 SQL Server Management Studio (SSMS) 或 T-SQL 查詢識(shí)別阻塞進(jìn)程的方法:
方法 1:使用 SQL Server Management Studio (SSMS)
方法 2:使用 T-SQL 查詢
您可以使用以下 T-SQL 查詢來檢索當(dāng)前阻塞的進(jìn)程及其相關(guān)信息:
SELECT
o.name AS ObjectName,
p.spid AS SPID,
p.status AS Status,
p.command AS Command,
p.wait_type AS WaitType,
p.wait_time AS WaitTime,
p.last_wait_resource AS LastWaitResource,
p.client_app_name AS ClientAppName
FROM
sys.dm_tran_active_transactions t
INNER JOIN
sys.dm_tran_sessions s ON t.session_id = s.session_id
INNER JOIN
sys.dm_tran_locks l ON t.transaction_id = l.transaction_id
INNER JOIN
sys.objects o ON l.resource_associated_entity_id = o.object_id
INNER JOIN
sys.dm_exec_sessions p ON s.session_id = p.session_id
WHERE
l.request_mode = 'BLOCK'
ORDER BY
p.session_id, l.resource_name;
這個(gè)查詢將返回一個(gè)包含阻塞進(jìn)程及其相關(guān)信息的列表,包括 SPID。請注意,您需要具有足夠的權(quán)限才能運(yùn)行此查詢。