AWR报表-enq: TX - row lock contention事件解决方法

        enq: TX - row lock contention事件是锁等待事件,今天我要做一个例子来模拟这类事件的出现。

     测试环境如下:

     AWR报表-enq: TX - row lock contention事件解决方法_第1张图片

     现在我们进行测试,用1个会话session插入数据,不提交。让其他会话session进行相关修改

     

--SESSION 1(持有者)
insert  into t values ('M',99, 'young','AAA');

---SESSION 2(其他会话) 
--以下方式的语句执行皆会被阻挡
insert  into t values ('M',78, 'young','TTT');
--session 3
update t set gender='M' WHERE LOCATION=30; 
--session 4
delete from T WHERE GENDER='M'; 

         然后生成结束断点和产生AWR报表

exec dbms_workload_repository.create_snapshot();  


@?/rdbms/admin/awrrpt.sql

        查看报表

AWR报表-enq: TX - row lock contention事件解决方法_第2张图片

发现enq: TX - row lock contention事件,那么这个事件是哪个SQL产生的呢

alter session set nls_date_language='american' ;
@?/rdbms/admin/ashrpt.sql
这个时候要看ASH报表了

AWR报表-enq: TX - row lock contention事件解决方法_第3张图片

这样就轻松的找到刚才的SQL了

     


你可能感兴趣的:(awr)