ITPub博客

首页 > 数据库 > Oracle > 一次ora-0430经历

一次ora-0430经历

Oracle 作者:huanjihou 时间:2015-01-02 22:44:25 0 删除 编辑
在检查日志时,发现了一个错误 ORA-04030: out of process memory when trying to allocate .....。 经分析,每当处理非常大的事务时,就会发生,于是开始对这个大事务进行跟踪,sql如下:
select value from v$pgastat;
select value from v$sysstat;
select pga_allocated from v$session
发现当v $sysstat.value 达到4G 的时候,就会报错,检查sql, 发现cursor 产生的大量数据需要放到一个local variable 的table 中,而这超出了ulimit  stack size。
最终解决方案是加上limit 以减少PGA 内存使用。

OPEN CURSOR cur
LOOP
  FETCH cur BULK COLLECT INTO tbl  limit v_rows;
..........
  EXIT WHEN  cur%NOTFOUND;
 
  END LOOP;
  CLOSE cur;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29826132/viewspace-1387903/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2014-08-25

  • 博文量
    2
  • 访问量
    13473