文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Oracle等待事件之enq: TM – contention

2024-04-02 19:55

关注

执行DML 期间,为防止对与DML 相关的对象进行修改,执行DML 的进程必须对该表获得TM 锁。

P1 = name|mode

P2 = object #

P3 = table/partition

SQL> select   name,parameter1,parameter2,parameter3 from v$event_name where name like 'enq:   TM - contention';

NAME                           PARAMETER1           PARAMETER2           PARAMETER3

------------------------------   -------------------- -------------------- --------------------

enq: TM - contention           name|mode            object #             table/partition

 

解决办法:可以通过下面的sql 查询blocker

SELECT distinct w.tm, w.p2 OBJECT_ID,   l.inst_id, l.sid, l.lmode, l.request,l.block

 FROM

  (   SELECT p2, p3, 'TM-'||substr(p2raw,-8)||'-'||lpad(p3,8,'0') TM

        FROM v$session_wait

       WHERE event='enq: TM - contention'

         and state='WAITING'

  )   W,

    gv$lock L

 WHERE l.type(+)='TM'

     and l.id1(+)=w.p2

     and l.id2(+)=w.p3

 ORDER BY tm, lmode desc, request desc

;

一般发生TM 争用的情况如下:

l   DDL 动作

l   Lock table tab_name in share mode;lock table tab_name in exclusive mode ;

l   INSERT INTO

l   SQL*Loader 的direct path load

l   外键约束无索引

模拟enq: TM – contention

会话1 :

SYS@cdbtest1(CDB$ROOT)> lock table t   in exclusive mode;

Table(s) Locked.

会话2 :

SYS@cdbtest1(CDB$ROOT)> update t set   object_id=100 where object_id=100;

查询等待事件

SYS@cdbtest1(CDB$ROOT)>     select inst_id, event#, event,count(*)   from gv$session

    2       where wait_class#   <> 6

    3      group by inst_id,   event#,event

    4      order by 1,4 desc;

     INST_ID     EVENT# EVENT                            COUNT(*)

---------- ----------   ------------------------------ ----------

           1        278 enq: TM -   contention                    1

           1        414 SQL*Net message to   client               1

查询blocker

SELECT distinct w.tm, w.p2 OBJECT_ID,   l.inst_id, l.sid, l.lmode, l.request,l.blocklmode, l.request,l.block

 FROM

    2    3    ( SELECT p2, p3,   'TM-'||substr(p2raw,-8)||'-'||lpad(p3,8,'0') TM

    4        FROM v$session_wait

    5       WHERE event='enq: TM -   contention'

    6         and state='WAITING'

    7    ) W,

    8    gv$lock L

    9   WHERE l.type(+)='TM'

 10       and l.id1(+)=w.p2

 11       and l.id2(+)=w.p3

 12     ORDER BY tm, lmode desc, request desc

 13  ;

TM                    OBJECT_ID    INST_ID        SID      LMODE      REQUEST      BLOCK

-------------------- ---------- ----------   ---------- ---------- ---------- ----------

TM-00013866-00000000      79974          1        113          6          0          1

TM-00013866-00000000      79974          1         91          0          3          0

阻塞者是113 ,被阻塞者是91.

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯