当开2个以上session的时候运行查询就出现:
ORA-04030: 在尝试分配 713216 字节 (cursor work he,kllcqas:kllsltba)时进程内存不足
init文件配置如下:
db_name = "BODW53"instance_name = BODW53service_names = BODW53db_files = 1024control_files = ("D:\oracle\oradata\BODW53\control01.ctl", "E:\oracle\oradata\BODW53\control02.ctl", "F:\oracle\oradata\BODW53\control03.ctl")open_cursors = 300
max_enabled_roles = 30
db_file_multiblock_read_count = 32db_block_buffers = 16933shared_pool_size = 314572800large_pool_size = 15728640
java_pool_size = 2097152log_checkpoint_interval = 10000
log_checkpoint_timeout = 1800processes = 30parallel_max_servers = 5log_buffer = 65536max_dump_file_size = 10240  # limit trace file size to 5M eachuser_dump_dest = d:\oracle\admin\BODW53\udumpdb_block_size = 8192remote_login_passwordfile = exclusiveos_authent_prefix = ""# The following parameters are needed for the Advanced Replication Option
job_queue_processes = 4
job_queue_interval = 60
open_links = 10distributed_transactions = 10
mts_dispatchers = "(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)"compatible = 8.1.0
sort_area_size = 6291456
sort_area_retained_size = 6291456

解决方案 »

  1.   

    注:db_block_buffers  =  16933  已经够用,我开到135465仍然出现这个问题。
    还有请问各位32位的oracle8的2G内存限制怎么突破,我用的是win2k
      

  2.   

    注:db_block_buffers  =  16933  已经够用,我开到135465仍然出现这个问题。
    还有请问各位32位的oracle8的2G内存限制怎么突破,我用的是win2k
      

  3.   

    ORA-04030 out of process memory when trying to allocate string bytes (string,string)  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.  
    你的程序是不是存在内存泄漏的问题?
      

  4.   

    是不是应用没有使用Bind变量,加参数cusor_shard=true
      

  5.   

    我根本还没有使用应用程序,只是同时在一台客户端机器上开多个SQLplus,运行相同或不同的SQL查询时候就出现这个错误了,顺便问一句sort_area_size如果开6M那么一个session实际占用多少服务器内存?6+12=18M?
      

  6.   

    我用的是oracle8.1.7 的32位版,基于windows2000,实际物理内存3G,请高手指教啊