我们是做应用环境经常有一个奇怪的问题。
经常做dml操作的时候会发现,执行时间很久才执行完,差不多需要2分钟左右。然后查询这张表v$locked_object,也是很久才有反应(时间是dml表执行完),随后会出现有表锁住了,锁的就是我操作dml的那张表,锁级别为3.
1.有概率的发现,概率算不怎么高(已经出现过好几次了)。
2.执行一个dml自己会释放。(也不知道是执行这个dml触发的还是原来就已有的)
3.不报任何错,就是时间慢2分钟。
请各位大虾们帮个忙。帮我一同分析分析

解决方案 »

  1.   

    dml操作很多,你dml是干什么?
    问题具体点,没有搞明白你搞什么
      

  2.   

    如果有很多的dml操作,最好跟踪具体有那些在同一时间做什么操作,如果
    同时操作一个表应控制锁发生的。
      

  3.   

    锁表时查一下对应的sql,应该是应用逻辑的问题。
      

  4.   

    dml 就是一个简单insert或者update或者delete语句的插入语句。
    1.我们的并发量不大,经常出现这种问题是凌晨的时候,这时候并没有人访问。
      

  5.   

    经过进一段研究,查了下alert日志,终于又发现一个规律。
    ORA-16198: LGWR received timedout error from KSR
    ORA-16198: Timeout incurred on internal channel during remote archival
    都会报这个错,而就是这时反应速度慢。原来这台服务器与另一台做dataguard备份。
    求解决方案。