一个用来存储报表的数据库上,有一系列数据导入的进程,但在今天发现这些进程一直未执行结束,在数据导入端可以看到数据导入速度为零,查看数据库上的等待事件,发现它们的等待事件全部是enq: ST – contention(EXTENT分配或者回收的锁)。
SID MACHINE HASH Event Name P1 P2
------ -------------- ------------ -------------------------- -------- ---------
1069 gateway208063. 2384721791 enq: ST - contention 1398013958 0
775 gateway208063. 2384721791 enq: ST - contention 1398013958 0
通过查询v$lock这个视图,可以发现某个会话一直占用着ST锁,杀掉这个进程之后,其他的进程的数据导入速度恢复正常。至于这个会话为啥会长久地占用这个锁,没有进一步追查。
SQL> select * from gv$lock where type='ST';
SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK
---- -- ---------- ---------- ---------- ---------- ---------- ----------
661 ST 0 0 0 6 73 0
720 ST 0 0 0 6 73 0
685 ST 0 0 0 6 72 0
887 ST 0 0 0 6 72 0
922 ST 0 0 0 6 72 0
1054 ST 0 0 6 0 261 2
704 ST 0 0 0 6 75 0
849 ST 0 0 0 6 75 0
976 ST 0 0 0 6 75 0
978 ST 0 0 0 6 75 0
815 ST 0 0 0 6 75 0
以上是一个非常简单的使用v$lock解决enqueue的问题,但是在解决过程中却花费了我很长的时间,这应该是我没有按照最为直接的思维考虑这个问题导致的。对于这个问题,我们应该这么想:既然等待ST锁,那么ST锁肯定被某个会话占用着,通过V$LOCK查找到这个会话,并审查这个会话的这种行为是否正常。
分享到:
相关推荐
并在数据块上产生一个TX锁,此时另外一个会话也需要向该数据块中插入新的索引条目,于是该事务不得不等待索引分裂完成。这时就会表现为enq: TX - index contention。本例中索引块分裂属于5-5 分裂,此分裂可以通过...
enq PS - contention.pdf enq PS - contention.pdfenq PS - contention.pdf
BLOG_【AWR分析】Oracle_lhr_队列等待之enq IV - contention案例.pdfBLOG_【AWR分析】Oracle_lhr_队列等待之enq IV - contention案例.pdf
BLOG_Oracle_lhr_【等待事件】序列等待事件总结(enq SQ - contention、row cache lock、DFS lock handle和enq SV - contention).pdfBLOG_Oracle_lhr_【等待事件】序列等待事件总结(enq SQ - contention、row ...
当系统activity增加或者降低的时候,oracle SMON进程会自动ONLINE或者OFFLINE rollback segments。这样导致某些与undo segments相关的latch或者enqueue被...导致系统很多活跃session都开始等待enq: US - contention。
队列等待之TX - allocate ITL entry引起的死锁处理 Buffer busy waits异常等待事件分析与处理。 Buffer latch异常等待事件分析与处理。 Db file parallel read异常等待事件分析与处理。 Db file sequential read异常...
BLOG_Oracle_lhr_ 【等待事件】等待事件系列(5.1)--Enqueue(队列等待) .pdfBLOG_Oracle_lhr_ 【等待事件】等待事件系列(5.1)--Enqueue(队列等待) .pdf
BLOG_【故障处理】Oracle_lhr_队列等待之TX - allocate ITL entry案例.pdfBLOG_【故障处理】Oracle_lhr_队列等待之TX - allocate ITL entry案例.pdf
安装:npm install -g tfa获得帮助bash-3.2 $ tfa用法:tfa [选项] [命令]命令:注册一个两层身份验证客户端厌倦了一直抽出手机来获取那些2fa代码吗? 安装:npm install -g tfa获得帮助bash-3.2 $ tfa用法:tfa ...
ASCII字符集中的功能控制字符 4 – EOT – E nd O f T ransmission 传输结束 5 – ENQ – ENQ uiry 请求 6 – ACK – ACK nowledgment 回应 / 响应 7 – BEL – [audible] BEL l
TuxMon - 一个用于 Oracle Tuxedo IPC 队列和服务器的简单的类似 top 的监控工具 信息领域 逻辑和物理机器名称。 注意:以下数字包括资源管理器及其队列。 IPC 队列中的消息数 包含消息的 IPC 队列数 已完成某些...
$ git config --global user.name“ John Doe” $ git config --global user.email Создайфайлgitignore.txtОтредактируйвтекстовомредактореповкусуRUN CMD –> ...
linux实验 linux 作业调度程序 C语言 源码 可执行文件 enq deq stat
通过该程序,你可以用来销售小量各类数字卡币。 主要功能: 1,采用预存方式时实交易数字卡。便利数字卡网上即使交易的特性。 2,带积分、消费总金额、交易历史等统计功能。 3,客户预存点,可采用发行充值卡方式。...
5 – ENQ – ENQuiry 请求 2.1.2.1.2.6. 6 – ACK – ACKnowledgment 回应/响应 2.1.2.1.2.7. 7 – BEL – [audible] BELl 2.1.2.1.2.8. 8 – BS – BackSpace 退格键 2.1.2.1.2.9. 9 – HT – Horizontal Tab 水平...
本文实例讲述了Python实现队列的方法...#调用list的列表的pop()函数.pop(0)为列表的第一个元素 def deQ(): if len(queue) == 0: print 'Cannot pop from an empty queue!' else: print 'Removed [', queue.pop(0) ,
安装npm install priorityqueuejs例子var PriorityQueue = require ( 'priorityqueuejs' ) ;var queue = new PriorityQueue ( function ( a , b ) { return a . cash - b . cash ;} ) ;queue . enq ( { cash : 250 ,...
3.累加和是从STX后面一个字节开始累加到ETX的和。 三菱FX系列PLC编程口通信.源.代.码 fx_comm.h FX系列PLC四种通信模式的特性 首先讲讲FX系列PLC的通信方式。 FX系列PLC根据使用的通信模块与协议不同,分为以下...
def enQ(): # 定义一个入栈方法 queue.append(raw_input('Enter New String: ').strip()) # 提示输入一个入队的 String 对象, 调用 Str.strip() 保证输入的 String 值不包含多余的空格 def deQ
下面再举一个例子。 \STARTBabcdef\CODEC123456,意思是:以以字符集B(\STARTB)开始,编码abcdef,转入字符集C(\CODEC) 编码123456。 所以,128条码是比较复杂的,而现在大多数条码软件只支持128A\B\C,且不支持...