DBAtlas · 数据库运维图谱

1205: Transaction (Process ID) was deadlocked on lock resources with another process and has been chosen as the deadlock victim(事务(进程 ID)与另一个进程在锁资源上发生死锁,已被选为死锁牺牲者)

SQL Server

含义

两个或多个事务各自等待对方持有的锁(死锁)。为打破循环,SQL Server 选择一个事务作为牺牲者并将其回滚。

原因

事务以不同顺序锁定表/行、长时间运行的事务、缺少索引导致的大范围扫描、锁升级以及高并发是典型原因。

解决方法

在应用中捕获错误 1205 并自动重试事务。在每个事务中以相同顺序访问对象,并保持事务简短。检查死锁图:使用 Extended Events(system_health 会话)或跟踪标志 1222 获取详情。添加合适的索引以减少扫描和加锁。必要时评估 READ COMMITTED SNAPSHOT(RCSI)隔离级别。

在 DBAtlas 中打开 →

同一数据库的其他条目