事情是这样的      有一段存储过程,在测试环境执行很稳定,大约一小时完成,但是在生产上执行很不稳定,快则40分钟,慢则4-5个小时,问各位大神什么原因可能造成这种情况。ps 生产和测试环境oralce配置不同,但是存储过程及需要处理的数据及执行结果完全相同,并且生产环境配置高于测试环境。只有90分了。。聊表心意

解决方案 »

  1.   

    执行时间如下,单位是秒 并不是某条sql,而是sql整体执行时间变长了。图片是所有步骤耗时,除此之外没有别的sql了
      

  2.   

    优化每一段的SQL语句,能建索引的就建索引,能用临时表的就别再一遍一遍取数据了
      

  3.   

    如果你确认查询的数据量和返回的结果是一样的,那基本可能几个原因:1、最可能的就是负载..是否在入库?频繁写入?数据库的压力,并发量?iostat -xm 12、SGA相关大小,特别是DATA BUFFER的配置3、硬盘的速度
      

  4.   

    这是sql优化部分,请贴上代码
      

  5.   

    你是期望1小时完成,现在有时40分钟,有时4~5小时.
    可能的原因是:1.在执行时,机器的负载不同.2.在执行时,其它会话对这个存储过程的影响.
    先对比一下不同效率下的awr.
      

  6.   

    快则40分钟,慢则4-5个小时
    应该是生产库负载的问题
    做个awr