暂无图片
返回数说广场
Kubee
2025-02-27
答案: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
分享

评论

热门数说