自己算算看
ORACLE  SGA  的分配  2002-05ORACLE 8.0.X 版本SGA=((db_block_buffers * block size)+(shared_pool_size+large_pool_size+log_buffers)+1MBORACLE 8.1.X 版本SGA=((db_block_buffers * block size)+(shared_pool_size+large_pool_size+java_pool_size+log_buffers)+1MB理论上SGA可占OS系统物理内存的1/2——1/3,我们可以根据需求调整我推荐SGA=0.45*(OS RAM)假设服务器运行ORACLE 8.1.X 版本, OS系统内存为2G MEM, db_block_size 是8192 bytes, 
除了运行ORACLE数据库外, 没有其它的应用程序或服务器软件.这样SGA合计约为921M ( 0.45*2048M ), 设shared_pool_size 300M (300*1024*1024 bytes)设database buffer cache 570M (72960*8192 bytes) initorasid.ora文件里具体各参数如下:shared_pool_size = 314572800
# 300 Mdb_block_buffers = 72960
# 570 Mlog_buffer = 524288
# 512k (128K*CPU个数)large_pool_size = 31457280
# 30 Mjava_pool_size = 20971520
# 20 Msort_area_size = 524288
# 512k (65k--2M)sort_area_retained_size = 524288
# MTS 时 sort_area_retained_size = sort_area_sizeSUN Solaris里/etc/system文件里的几个参数同样跟内存分配有关ORACLE安装时缺省的设置: 建议修改的设置: 
set shmsys:shminfo_shmmax=4294967295 
set shmsys:shminfo_shmmin=1 
set shmsys:shminfo_shmmni=100 
set shmsys:shminfo_shmseg=15 
set semsys:seminfo_semmns=200 
set semsys:seminfo_semmni=70 
set ulimit=3000000  
set semsys:seminfo_semmni=315
set semsys:seminfo_semmsl=300
set semsys:seminfo_semmns=630
set semsys:seminfo_semopm=315
set semsys:seminfo_semvmx=32767
set shmsys:shminfo_shmmax=4294967295
set shmsys:shminfo_shmmni=315
set shmsys:shminfo_shmseg=10
set shmsys:shminfo_shmmin=1 其中这些参数的含义shmmax - 共享内存段,建议设大点, 达到最大SGA
shmmin - 最小的共享内存段.
shmmni - 共享内存标志符的数量.
shmseg - 一个进程可分配的最大内存段数.
shmall - 最大可允许的内存数,比SGA还要大.
semmns - 信号灯,跟ORACLE的PROCESS数有关.
semmsl - 一个信号灯中最大的信号灯数.

解决方案 »

  1.   

    上面这位老兄的 shared_pool_size 也太大了吧!
    人家不过是自己准备装个 oracle 用于学习而已---服务器哪会只有 256M内存啊!配上 300M 的 share_pool_size ,人家哪还有资源干其他活啊??另外,你的  db_block_buffers = 72960  (570M )
    是按照 数据库大小 8192 来计算的!
    看上面这位兄弟,恐怕是接受的默认设置 2048哦!刚刚学习 ORACLE 的话,设置 
    large_pool_size = 31457280 这么大也没有什么用!
    用来存放 存储过程什么之类的!!把楼上这位兄弟的 砍掉至少一半,
    db_block_buffers = 72960 
    明显偏大了!!再砍掉一半吧! 
      

  2.   

    這里提供了一些關于配置的連接:
    http://www.itpub.net/showthread.php?s=&threadid=105392
      

  3.   

    升为512M后,下列参数可以增加一倍:
    db_block_size = 8192
    shared_pool_size = 25728640
      

  4.   

    如果学数据库管理的话,可以随便试,比如把db_block_buffers设成500,shared_pool_size设成4m等等。这样有时会出现有趣的情况,比如某次启动时,数据库打不开了,或者数据库很慢很慢,正好练练查原因。
      

  5.   

    ORACLE是注重内存的,其实还要根据你的数据量
    来计算。把影响几个影响SGA参数调整就行了。