Oracle等待事件之enq: TM – contention


执行DML
期间,为防止对与DML
相关的对象进行修改,执行DML
的进程必须对该表获得TM
锁。P1 = name|modeP2 = object #P3 = table/partitionSQL> 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
查询blockerSELECT distinct w.tm, w.p2 OBJECT_ID, l.inst_id, l.sid, l.lmode, l.request,l.blockFROM ( 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 LWHERE l.type(+)=’TM’ and l.id1(+)=w.p2 and l.id2(+)=w.p3ORDER 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 /*+ APPEND */ INTO
l
SQL*Loader
direct path load
l

外键约束无索引
会话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
查询blockerSELECT distinct w.tm, w.p2 OBJECT_ID, l.inst_id, l.sid, l.lmode, l.request,l.blocklmode, l.request,l.blockFROM 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.p211 and l.id2(+)=w.p312 ORDER BY tm, lmode desc, request desc13 ;TM OBJECT_ID INST_ID SID LMODE REQUEST BLOCK——————– ———- ———- ———- ———- ———- ———-TM-00013866-00000000 79974 1 113 6 0 1TM-00013866-00000000 79974 1 91 0 3 0
阻塞者是113
,被阻塞者是91.

相关推荐: PostgreSQL 源码解读(146)- Storage Manager#2(fsm_search_avail函数)

本节简单介绍了PostgreSQL在执行插入过程中与存储相关的函数RecordAndGetPageWithFreeSpace->fsm_set_and_search,该函数设置给定的FSM page的相应值,并返回合适的slot。 FSMAddress …

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 12/31 17:29
下一篇 12/31 18:05