我的配置情况是这样的
共享池          800M
大型池          384M
JAVA池          32M
SGA总容量       9410.725M
SGA最大大小     13090.987MPGA             256M
数量两在300万条记录,重要是涉及到很多的判断,会到一个4000万左右的表中去寻找相关的信息
在执行到15-16万的时候就会报  OUTPUT MEMORY
请问这是怎么回事??

解决方案 »

  1.   

    请给出oracle版本和操作系统版本
    你的数据缓冲池是多大?
      

  2.   

    不一定是配置问题,也可能和你的存储过程啊、客户端应用程序有关
    比如你在客户端查询,返回300万条记录以上,就可能耗完内存,导致 OUTPUT MEMORY
      

  3.   

    是ORACLE92的数据库,小型机的操作系统是LINUX9,取数据,处理数据都是用存储过程(SQL)的,只是在过程中用的游标,因为需要一条一条记录的处理
      

  4.   

    原来如此,游标也会耗掉很大内存的
    你把数据缓冲开大掉,参数是db_cache_size
    另外我还是建议你重新整理你的数据处理思路
    尽量不要一条条处理
    尽量批量处理,看你处理数据量这么大,批量将是你的最佳选择
      

  5.   

    照楼主这种情况,必须一条条处理
    我的处理办法:
    添加处理标志列flag,0--未处理,1--已处理
    在存储过程中记数,每处理10万记录就关闭游标,重新打开,游标的检索条件加上flag=0
    处理过程为每处理一条修改flag为1--已处理