数据库教程:oracle数据库下insert产生rowlockcontention事件记录

案例描述 今天在进行RAC 数据库监控时,发现大量的活动会话数,深入调查后,竟然发现是由于insert 语句造成成的阻塞,等待事件为enq tx-row lock content


案例描述

今天在进行RAC 数据库监控时,发现大量的活动会话数,深入调查后,竟然发现是由于insert 语句造成成的阻塞,等待事件为enq tx-row lock contention

问题定义

为什么insert 语句也会产生row lock contention等待?

需要了解更多数据库技术:oracle数据库下insert产生rowlockcontention事件记录,都可以关注数据库技术分享栏目—计算机技术网(www.ctvol.com)!

分析

收集数据

网络案例收集,在asktom的网站上及www.killdb.com上都有文章记录:
假设数据库T1(id,username),具有唯一索引在ID上。
会话1,在10:00 insert (1,'jack') ,但未commit
会话2, 在10:01 insert (1,'jack') ,就会被组塞。
会话3,在10:02 查询v$session,就会发阻塞的等待事件:enq:Tx ROW LOCK CONTENTION 参考网址: https://www.killdb.com/2015/07/13/关于enq-tx-row-lock-contention的测试和案例分析.html

分析数据

所收集的案例已经充分说明原因。无需再次分析。

结论

当数据表具有唯一索引时,当两个会话一前(未commit)一后插入同样的数据后,就会出现阻塞,表现的等待事件就是row lock contention

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/dtteaching/801901.html

(0)
上一篇 2021年9月13日
下一篇 2021年9月13日

精彩推荐