返回数说广场
0
答案:A (行级锁争用)
---
解析:
等待事件 `enq: TX - row lock contention` 是 Oracle 中与 行级锁争用 直接相关的典型等待事件。以下是关键分析:
1. TX 锁的作用
- TX 锁是事务(Transaction)锁,用于维护行级数据的一致性。当一个事务修改某行数据时,会为该行添加 TX 锁,防止其他会话同时修改,直到事务提交或回滚。
2. 触发场景
- 并发修改同一行数据:多个会话同时更新或删除同一条记录,导致会话等待行级锁释放。
- 主键/唯一键冲突:会话插入重复的唯一键值时,需等待前一个未提交的事务完成(此时也涉及行级锁)。
- 位图索引维护:更新位图索引的键值会锁定多行数据,可能引发锁争用。
3. 与其他选项的对比
- B(索引争用):索引争用通常表现为 `buffer busy waits` 或 `enq: TX - index contention`,而非直接的行锁等待。
- C(表级锁争用):表级锁对应 `TM` 锁(如 `LOCK TABLE`),等待事件为 `enq: TM - contention`。
- D(日志写入争用):与日志写入相关的等待事件是 `log file sync` 或 `log file parallel write`,与 TX 锁无关。
4. 典型解决方案
- 优化事务逻辑,减少事务持有锁的时间。
- 检查并消除重复插入唯一键值的操作。
- 使用 `ASH` 或 `AWR` 报告定位阻塞会话,必要时终止或提交阻塞事务。
综上,A(行级锁争用) 是正确答案。
0
0 153
分享
评论
热门数说


