ORA-04030 out of process memory when trying to allocate 48 bytes (callheap, temporary)
Cause: Operating system process private memory has been exhausted.
Action: See the database administrator or operating system administrator to increase process memory quota. There may be a bug in the application that causes excessive allocations of process memory space.我还注意到oracle说明的最后一句:可能是程序中有申请过大空间的错误,可是我得存错过程每次只申请不超过10K的空间(主要是varchar2),每次最多是4个线程并发执行,应该每次调用完成后空间都会释放的,怎么会出现这种问题呢?
另外,我在存储过程中为了调试加了许多dbms_output.put_line语句,这有没有影响呢?

解决方案 »

  1.   


    调理一下存储过程 and 加大内存
      

  2.   

    这是ORACLE程序全局区出错了,把SQL工作区的内存分配加大。
    修改INIT<SID>.ORA,
    8I
     设置 sort_area_size,hash_area_size,create_bitmap_area_size等控制PGA
    9I
     只需要设置  PGA_AGGREGATE_TARGET (还要设置 WORKAREA_SIZE_POLICY=TRUE)
      

  3.   

    8I和一下版本
     设置 sort_area_size,hash_area_size,create_bitmap_area_size等控制PGA