解决方案 »

  1.   

    先查一查数据库正在执行的sql语句,可能会有新的发现
    SELECT b.sid oracleID,  
           b.username 登录Oracle用户名,  
           b.serial#,  
           spid 操作系统ID,  
           paddr,  
           sql_text 正在执行的SQL,  
           b.machine 计算机名  
    FROM v$process a, v$session b, v$sqlarea c  
    WHERE a.addr = b.paddr  
       AND b.sql_hash_value = c.hash_value  
    查询Oracle正在执行的sql语句
      

  2.   


    帖子已经说了,我就是通过看正在执行的会话和SQL,看到有很多活动的会话正在执行那个存过
      

  3.   

    重点检查此下两个方面
    1、需要重点检查阻塞时其他sql语句是否有与此过程相关的语句2、调用此过程的位置是否存在死循环或是递归操作
     有可能是调用速度比执行速度快,造成总是有大量此过程等待执行
      

  4.   


    但是那个时候在PL/SQL DEV里面执行那个存过都阻塞,而把里面的SQL提出来执行就很快执行完了,这个如何解释?
      

  5.   


    但是那个时候在PL/SQL DEV里面执行那个存过都阻塞,而把里面的SQL提出来执行就很快执行完了,这个如何解释?
    你的存储过程调用了序列SEQ_ORDER,监控一下这个序列增长的速度,先确认是不是调用频率过高造成的
    假设你服务器每秒最快能处理这个过程1000次,如果死循环每秒调用了1200次,这时候你查询会总是有没执行完的这个过程