查看当前死锁
SELECT
request_session_id spid,
OBJECT_NAME(
resource_associated_entity_id
) tableName
FROM
sys.dm_tran_locks
WHERE
resource_type = 'OBJECT'
杀掉死锁进程
kill spid查看死锁信息exec master.dbo.sp_who_lock;--查看当前死锁进程
exec master.dbo.p_killspid ytsafety;--杀掉引起死锁的进程查看进程信息
SELECT * FROM sys.dm_exec_connections;
SELECT * FROM sys.dm_exec_sessions;
SELECT
spid,
blocked,
DB_NAME(sp.dbid) AS DBName,
program_name,
waitresource,
lastwaittype,
sp.loginame,
sp.hostname,
a.[Text] AS [TextData],
SUBSTRING (
A. TEXT,
sp.stmt_start / 2,
(
CASE WHEN sp.stmt_end = - 1 THEN DATALENGTH (A. TEXT) ELSE sp.stmt_end END - sp.stmt_start
) / 2
) AS [current_cmd] FROM sys.sysprocesses AS sp OUTER APPLY sys.dm_exec_sql_text (sp.sql_handle) AS A WHERE spid > 50 ORDER BY blocked DESC,
DB_NAME(sp.dbid) ASC,
a.[text];
本文介绍了如何使用 SQL Server 的内置功能来诊断和解决死锁问题。包括查询当前死锁状态、杀死造成死锁的进程以及获取详细的死锁信息。

2383

被折叠的 条评论
为什么被折叠?



