查看更多
当前 - 选择题 - 数据库理论
中等
单选题
2024年11月第6题
#第二版教材
#必须掌握

两个事务竞争资源出现死锁后,通过(__)可以解决死锁问题。

问题(1)
浓缩知识点

死锁是多个事务互相持有对方所需资源且不释放,形成循环等待的状态。针对已发生的死锁,核心解决思路是打破循环等待,最常用的手段是强制回滚部分事务,释放其占用的资源,通常会选择回滚代价较低的事务,比如执行时长较短、数据修改量少的,以此降低系统损耗。事务超时重试仅能在一定程度上缓解死锁,无法彻底消除;提高事务优先级则无法破解循环等待的核心矛盾,不能真正解决死锁。此外,我们可以通过提前预防来规避死锁,比如要求所有事务按照相同顺序申请资源,或让事务一次性申请全部所需资源,从根源上避免循环等待的形成。

正确答案
B

本题考察的是数据库死锁的处理方法
死锁发生在多个事务互相持有对方需要的资源,并且都不释放,形成了循环等待。解决死锁的关键是打破循环等待
A选项提高事务优先级:提高优先级并不能解决死锁,因为即使优先级高,事务仍然需要等待被占用的资源。死锁问题在于循环等待,而不是调度顺序。错误。
B选项其中一个事务回滚:强制回滚某个事务,释放其持有的资源,使其他事务得以继续执行,这是常用的死锁解决办法,正确。
C选项事务超时立即重试:超时重试可能在一定情况下缓解死锁,但不能保证解决死锁,并且会增加系统开销,错误。
D选项所有事务按照相同的顺序申请资源:这是预防死锁的策略,可以避免死锁的发生,但题干问的是“已经发生死锁后”的解决办法,所以不符合题意,错误。
因此,正确答案是 B。

联系我们
隐私协议
用户协议
微信公众号
知乎
小红书
浙ICP备2021029036号
@2022-2026
嘉兴市安芯网络科技有限公司 版权所有