死锁

更新时间:2025-04-09 07:47:24

RDS SQL Server提供了死锁统计(DeadLock)页面,展示事务的开始时间、会话ID、被锁资源详情及死锁类型等信息,帮助您快速定位和优化引发死锁的问题SQL及其他异常。本文介绍通过RDS控制台查看RDS SQL Server数据库中的死锁及其详细信息的方法。

背景信息

由于事务的特殊机制,一个事务对特定资源进行修改时会锁定该资源,以防其他并发事务对同一资源进行修改,从而保证数据一致性。

死锁通常由多个事务互相竞争资源引发,例如事务A锁定资源A并尝试修改资源B,而事务B锁定资源B并尝试修改资源A,导致双方相互等待对方释放资源,最终导致死锁,此时系统会自动终止成本较低的SQL语句会话(即受害者会话),使无法完成该会话既定任务。如下图所示:

死锁

死锁类型

DeadLock统计页面中包含如下5种死锁类型

  • KeyDeadlock

  • ObjectDeadLock

  • RIDDeadlock

  • PageDeadlock

  • ComplieDeadlock

锁模式

事务访问资源时,会根据访问类型使用不同的锁模式(LockMode),包括以下几种:

  • 共享锁(S):保证目标资源在锁定期间只能被读取,不能被修改。

  • 更新锁(U):预定对目标资源施加排它锁(X),在资源被当前事务施加排它锁之前,保证该资源不会被其他事务修改。

  • 排它锁(X):保证目标资源在锁定期间无法被其他事务访问。

前提条件

  • 不支持RDS SQL Server 2008 R2云盘版实例。

  • 实例所在地域目前仅支持:华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华北6(乌兰察布)、华南1(深圳)、华南2(河源)、华南3(广州)、西南1(成都)、中国(香港)、新加坡、阿联酋(迪拜)。

查看死锁详情

  1. 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。

  2. 在左侧导航栏,选择自治服务 > 锁优化

DeadLock页面介绍

  • 死锁数量概览

    展示近期产生的死锁数量,支持分时段查看。死锁数量

  • 死锁变化趋势

    展示某时间段内发生的死锁类型,支持以下操作:

    • 选择起始日期结束日期,单击查找显示指定时间段的死锁信息(时间间隔不得超过30)。

    • 单击近一天近一周近一月快捷查询所选时间段的死锁信息。

    • 将鼠标移动到特定时间点,查询该时间点内发生的死锁类型和数量。

    • 单击趋势图右上角的图标图标,切换趋势图的显示样式或下载当前趋势图。

    死锁变化趋势

  • 死锁详细信息死锁详细信息

    单击左边的加号图标,查看相互锁定的会话详情,包含如下内容:

    • LastTranStarted:事务开启的时间。

    • SPID:开启事务的会话ID。

    • IsVictim:该会话是否已被终止(kill)。

      说明

      SQL Server解决死锁的方法是通过一个内部线程定期检测系统死锁,发现死锁后,在引发死锁的会话之间终止成本相对较低的会话。例如:SELECT语句的成本比UPDATE更低,系统便会优先终止使用SELECT的会话。

    • LogUsed:会话已经生成的日志大小。单位:字节。

    • LockMode锁模式

    • WaitResourceDesc:当前事务等待中的资源详情。

    • ObjectOwned:已经被锁住的对象。

    • ObjectRequested:当前事务请求加锁的对象。

    • WaitResource:当前事务等待中的资源。

    • HostName:当前事务的主机名称。

    • LoginName:当前事务的账号名称。

    • Status:当前事务的状态。

    • ClientApp:当前事务所使用的客户端名称。

    • SQLText:SQL语句详情。

      说明

      单击该SQL语句可打开SQL语句窗口,单击点击复制可快速复制SQL语句,方便排查或回溯有问题SQL。

    单击任意一行内容可在下方展示对应的死锁关系图。

  • 死锁关系图

    展示发生死锁的会话之间的相互关系及被锁定资源的详细信息。您可以单击点击下载按钮下载记录当前死锁详细内容的XDL文件,可通过SQL Server Management Studio(SSMS)客户端打开并查看。

    死锁关系图

死锁解决方案及调优建议

RDS SQL Server出现死锁时的处理方法

  • 本页导读 (1)
  • 背景信息
  • 死锁类型
  • 锁模式
  • 前提条件
  • 查看死锁详情
  • DeadLock页面介绍
  • 死锁数量概览
  • 死锁变化趋势
  • 死锁关系图
  • 死锁解决方案及调优建议
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等