`
beagoodboy
  • 浏览: 95753 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

使用V$LOCK解决enq: ST – contention的一个例子

阅读更多
一个用来存储报表的数据库上,有一系列数据导入的进程,但在今天发现这些进程一直未执行结束,在数据导入端可以看到数据导入速度为零,查看数据库上的等待事件,发现它们的等待事件全部是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查找到这个会话,并审查这个会话的这种行为是否正常。
分享到:
评论

相关推荐

    enq:TX index contention.txt

    并在数据块上产生一个TX锁,此时另外一个会话也需要向该数据块中插入新的索引条目,于是该事务不得不等待索引分裂完成。这时就会表现为enq: TX - index contention。本例中索引块分裂属于5-5 分裂,此分裂可以通过...

    enq PS - contention.pdf

    enq PS - contention.pdf enq PS - contention.pdfenq PS - contention.pdf

    BLOG_【AWR分析】Oracle_lhr_队列等待之enq IV - 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 ...

    undo引起的告警.txt

    当系统activity增加或者降低的时候,oracle SMON进程会自动ONLINE或者OFFLINE rollback segments。这样导致某些与undo segments相关的latch或者enqueue被...导致系统很多活跃session都开始等待enq: US - contention。

    【故障处理】队列等待之TX 等待事件处理.docx

    队列等待之TX - allocate ITL entry引起的死锁处理 Buffer busy waits异常等待事件分析与处理。 Buffer latch异常等待事件分析与处理。 Db file parallel read异常等待事件分析与处理。 Db file sequential read异常...

    BLOG_Oracle_lhr_ 【等待事件】等待事件系列(5.1)--Enqueue(队列等待) .pdf

    BLOG_Oracle_lhr_ 【等待事件】等待事件系列(5.1)--Enqueue(队列等待) .pdfBLOG_Oracle_lhr_ 【等待事件】等待事件系列(5.1)--Enqueue(队列等待) .pdf

    BLOG_【故障处理】Oracle_lhr_队列等待之TX - allocate ITL entry案例.pdf

    BLOG_【故障处理】Oracle_lhr_队列等待之TX - allocate ITL entry案例.pdfBLOG_【故障处理】Oracle_lhr_队列等待之TX - allocate ITL entry案例.pdf

    两因素身份验证客户端-Node.js开发

    安装:npm install -g tfa获得帮助bash-3.2 $ tfa用法:tfa [选项] [命令]命令:注册一个两层身份验证客户端厌倦了一直抽出手机来获取那些2fa代码吗? 安装:npm install -g tfa获得帮助bash-3.2 $ tfa用法:tfa ...

    ASCII字符集中的功能控制字符

    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 的一个简单的类似 top 的监控工具

    TuxMon - 一个用于 Oracle Tuxedo IPC 队列和服务器的简单的类似 top 的监控工具 信息领域 逻辑和物理机器名称。 注意:以下数字包括资源管理器及其队列。 IPC 队列中的消息数 包含消息的 IPC 队列数 已完成某些...

    测试:Avelacnum enq testayin REPO

    $ git config --global user.name“ John Doe” $ git config --global user.email Создайфайлgitignore.txtОтредактируйвтекстовомредактореповкусуRUN CMD –> ...

    linux作业调度C程序

    linux实验 linux 作业调度程序 C语言 源码 可执行文件 enq deq stat

    遂宁网万事卡学习版 V1.0

    通过该程序,你可以用来销售小量各类数字卡币。 主要功能: 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实现队列的方法

    本文实例讲述了Python实现队列的方法...#调用list的列表的pop()函数.pop(0)为列表的第一个元素 def deQ(): if len(queue) == 0: print 'Cannot pop from an empty queue!' else: print 'Removed [', queue.pop(0) ,

    priorityqueuejs:Node.js的简单优先级队列数据结构

    安装npm install priorityqueuejs例子var PriorityQueue = require ( 'priorityqueuejs' ) ;var queue = new PriorityQueue ( function ( a , b ) { return a . cash - b . cash ;} ) ;queue . enq ( { cash : 250 ,...

    xcyx.smart

    3.累加和是从STX后面一个字节开始累加到ETX的和。 三菱FX系列PLC编程口通信.源.代.码 fx_comm.h FX系列PLC四种通信模式的特性  首先讲讲FX系列PLC的通信方式。  FX系列PLC根据使用的通信模块与协议不同,分为以下...

    Python 数据结构之队列的实现

    def enQ(): # 定义一个入栈方法 queue.append(raw_input('Enter New String: ').strip()) # 提示输入一个入队的 String 对象, 调用 Str.strip() 保证输入的 String 值不包含多余的空格 def deQ

    条形码生成FreeBarcode

    下面再举一个例子。 \STARTBabcdef\CODEC123456,意思是:以以字符集B(\STARTB)开始,编码abcdef,转入字符集C(\CODEC) 编码123456。 所以,128条码是比较复杂的,而现在大多数条码软件只支持128A\B\C,且不支持...

Global site tag (gtag.js) - Google Analytics