广告
返回顶部
首页 > 资讯 > 数据库 >Oracle等待事件之enq: TM – contention
  • 687
分享到

Oracle等待事件之enq: TM – contention

2024-04-02 19:04:59 687人浏览 八月长安
摘要

执行DML 期间,为防止对与DML 相关的对象进行修改,执行DML 的进程必须对该表获得TM 锁。 P1 = name|mode P2 = object # P3 = table/partition

执行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.

您可能感兴趣的文档:

--结束END--

本文标题: Oracle等待事件之enq: TM – contention

本文链接: https://www.lsjlt.com/news/47068.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle等待事件之enq: TM – contention
    执行DML 期间,为防止对与DML 相关的对象进行修改,执行DML 的进程必须对该表获得TM 锁。 P1 = name|mode P2 = object # P3 = table/partition ...
    99+
    2022-10-18
  • oracle 11.2.0.4 rac集群等待事件enq: TM - contention
        近期,一金融客户oracle 11.2.0.4 rac集群delete不当导致等待事件enq: TM - contention严重引起大范围会话堆积,记录的相关分析工...
    99+
    2022-10-18
  • oracle等待事件之enq: CF – contentio
    Enqueue 是一种保护共享资源的锁定机制,避免因并发操作而损坏数据,Enqueue 采用排队机制,即 FIFO(先进先出)来控制资源的使用。在任何需要读取控制文件的动作时,就会发生等待事件enq: CF...
    99+
    2022-10-18
  • Oracle Study之-- enq:SQ contention等待事件
    Oracle Study之-- enq:SQ contention等待事件通过AWR Report发现“enq:SQ contention”等待事件:应用环境:转自:http://www.xuebuyuan...
    99+
    2022-10-18
  • 如何进行等待事件enq TX row lock contention的分析
    本篇文章为大家展示了如何进行等待事件enq TX row lock contention的分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 ...
    99+
    2022-10-19
  • 怎么理解oracle等待事件enq
    这篇文章主要讲解了“怎么理解oracle等待事件enq”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解oracle等待事件enq”吧!Enqueue ...
    99+
    2022-10-18
  • 【故障处理】队列等待之enq IV - contention案例
    【故障处理】队列等待之enq IV -  contention案例1.1  BLOG文档结构图 1.2  前言部分1.2.1  导读和注意事项各位技术爱好者...
    99+
    2022-10-18
  • 关于enq: TX - allocate ITL entry等待事件
      当表的ITL设置不能满足并发事务的需求时会产生此等待。数据块是oracle能够发出的最小i/o单位。在数据块中,数据块每当一个事务需要修改一个数据块时,需要在数据块头部获得一个可用的ITL槽,...
    99+
    2022-10-18
  • 故障排除 | enq:TX - index contention等待事件
    当一个事务对一个索引块做DML时,由于该索引块没有空闲空间导致索引块分裂,这时其他事务正在向这个索引块做DML时就会产生等待,直到这个索引块分裂完成。 以下是发生索引分裂竞争的几种场景: ...
    99+
    2022-10-18
  • Oracle Study之--Oracle等待事件(5)
    Oracle Study之--Oracle等待事件(5) Db file single write这个等待事件通常只发生在一种情况下,就是Oracle 更新数据文件头信息时(比如发生Checkpo...
    99+
    2022-10-18
  • Oracle Study之--Oracle等待事件(3)
    Oracle Study之--Oracle等待事件(3)Db file parallel read这是一个很容易引起误导的等待事件,实际上这个等待事件和并行操作(比如并行查询,并行DML)没有关系。 这个事...
    99+
    2022-10-18
  • Oracle Study之--Oracle等待事件(4)
    Oracle Study之--Oracle等待事件(4) Db file scattered read这个等待事件在实际生产库中经常可以看到,这是一个用户操作引起的等待事件,当用户发出每次I/O需...
    99+
    2022-10-18
  • Oracle Study之--Oracle等待事件(2)
    Oracle Study之--Oracle等待事件(2)Control file parallel write当数据库中有多个控制文件的拷贝时,Oracle 需要保证信息同步地写到各个控制文件当中,这是一个...
    99+
    2022-10-18
  • Oracle Study之--Oracle等待事件(7)
    Oracle Study之--Oracle等待事件(7) Free buffer waits    当一个会话将数据块从磁盘读到内存中时,它需要到内存中找到空闲的内存空间来存放...
    99+
    2022-10-18
  • Oracle 等待事件之 free buffer waits
    free buffer waits官网解释:    This wait event indicates that a server process was unabl...
    99+
    2022-10-18
  • Oracle 等待事件之 buffer busy waits
    buffer busy waits (热块儿争用)官网解释:    This wait indicates that there are some buffers i...
    99+
    2022-10-18
  • oracle等待事件之free buffer waits
    1.什么时候会发生free buffer waits呢?     简单来说,当需要在buffer cache中寻找可用块但是找不到时,就会发生这个等待。找寻可用块的理由包括...
    99+
    2022-10-18
  • Oracle Study之--resmgr:cpu quantum等待事件
    Oracle Study之--resmgr:cpu quantum等待事件在AWR Report中出现“resmgr:cpu quantum”等待事件:“resmgr:cpu quantum”等待事件:参考...
    99+
    2022-10-18
  • 等待事件enq:HW–contention说明及解决方法
    一、今天在查看awr报告中,发现Top 5 Timed Foreground Events发现enq: HW - contention的等待事件;   二、enq: HW - c...
    99+
    2022-10-18
  • Oracle 等待事件之 db file sequential read
    db file sequential read:官网解释:This event signifies that the user process is reading a buffer into the SG...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作