SGA的大致大小为
SGA=((db_block_buffers  *  block  size)+(shared_pool_size+large_pool_size+java_pool_size+log_buffers)+1MB 
 其中
db_block_buffers  *  block  size为数据缓冲区
应当是data_buffer_size吧,可能就是你说的db_cache_size
对于1G的机器300Mdata_buffer_size不大!
你看看你的SGA总量是多少,你这种增长是正常的,不会超过SGA(只是一般,如果你的排序区设的很大就另说了)。
所以只要你的配置正确,就没有问题。

解决方案 »

  1.   

    接近就接近了呗,有什么好怕的?分配给他的不就是为了让他用吗?随着数据库的运行。Shared_Pool会增加的!别的也会增加的。
      

  2.   

    怎么不见我select sum这个数值减少?会不会导致内存耗光。
    曾经出现过:
    [Oracle][ODBC][Ora]ORA-00604: error occurred at recursive SQL level 1
    ORA-04030: out of process memory when trying to allocate 8192 bytes (sort subheap,sort key)
    的错误,当时不得不重起数据库。这是怎么回事?
      

  3.   

    penitent(只取一瓢) ,
    我的
    sort_area_size = 524288这个很大吗?我的系统是呼叫中心模式,来自大概15台左右的终端连接,但是有些终端会起多进程连接oracle。每天呼叫数量大概900左右。
    排序区分配多少合适呢?
      

  4.   

    是每session的。
    小一点可以,如果你同时登陆的session很多,而又用到了排序,就会占用很大内存,
    我看就默认的64K吧。
    还有,如果是多线程就没有这个问题。
      

  5.   

    谢谢帮主。
    我用了MTS,看了一下书,书上说,当应用mts时,sort_area_retained_size值应该与sort_area_size相等。可是我用了sort_area_retained_size的默认值0!看来这个地方也要改的。
      

  6.   

    如果用了MTS,还得注意配置
    large_pool_size的大小。
      

  7.   

    penitent(只取一瓢) ,你要是不忙的话,就帮我看看下面我的参数文件initora9i.orabackground_dump_dest = /data1/admin/ora9i/bdump
    compatible = 9.0.0
    control_files = ('/data1/oradata/ora9i/control01.ctl', '/data1/oradata/ora9i/control03.ctl', '/data1/oradata/ora9i/control02.ctl')
    core_dump_dest = /data1/admin/ora9i/cdump
    db_block_size = 8192
    db_cache_size = 301989888
    db_domain = ''
    db_files = 1000
    db_name = ora9i
    dispatchers = '(ADDRESS=(protocol=TCP)(HOST=192.168.50.100))(SERVICE=ora9i)(disp=1)(mul=ON)(tick=1)(pool=(in=10)(out=10))(con=1000)(sess=1500)'
    fast_start_mttr_target = 300
    instance_name = ora9i
    java_pool_size = 33554432
    large_pool_size = 157286400
    log_archive_dest_1 = 'LOCATION=/ora/OraHome1/dbs/arch'
    open_cursors = 800
    parallel_threads_per_cpu = 4
    processes = 1000
    remote_login_passwordfile = EXCLUSIVE
    resource_manager_plan = 'SYSTEM_PLAN'
    sessions = 1105
    shared_pool_size = 150994944
    shared_server_sessions = 800
    sort_area_retained_size = 131072
    sort_area_size = 131072
    timed_statistics = FALSE
    undo_management = AUTO
    undo_tablespace = UNDOTBS
    user_dump_dest = /data1/admin/ora9i/udump
      

  8.   

    9i
    没有db_block_buffers 
    但有一个db_cache_size ,这个我也不清楚(我没有用到9i,对9i的了解是在这里或根据8i推的),最好你查查9i的书,
    db_cache_size 是不是就是8i的
    db_block_buffers  *  block  size
    如果是,你的SGA加起来有600多M,对于一个G的内存,也可以过的去。
    但是,如果服务器还执行其他的程序,就有点紧张了。你是多线程
    processes = 1000太多了
      

  9.   

    很感谢!感觉还是oracle版的人真是挺热心的。现在结帖!