ITPub博客

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

一次ora-0430经历

原创 Oracle 作者:meimei-cici 时间:2014-11-28 14:04:35 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/283126/viewspace-1350185/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-10-15

  • 博文量
    7
  • 访问量
    13502