服务器的增加了内存条,所以想增加一下shared_pool_size,可具体不知道怎么处理, 如果直接把shared_pool_size 可以吗?用不用修改其他地方参数?

解决方案 »

  1.   

    alter system set shared_pool_size= 100M;然后重启数据库。
      

  2.   

    你数据库用的PFILE还是SPFILEalter system set shared_pool_size= 100M scope=spfile;
    重启数据库后生效
      

  3.   


    可行, 也可以直接修改pfile文件,在重启数据库。 
      

  4.   

    正解
    share_pool_size:它指定共享池的大小,共享池包含:共享游标、存储的过程、控制结构和并行执行消息缓冲区等对象,较大的值用于改善多用户系统的性能,但不能盲目将shared_pool_size设置过大,因为shared_pool_size 过大会增加管理负担和latch 的开销,超过500M可能是危险的,达到1G可能造成CPU的严重负担,甚至导致系统瘫痪。建议值设置可在200MB~350MB之间。如果 shared_pool_size 超过350M还命中率不高,可以试着从应用上找原因。
      

  5.   

      如果是10g以后的版本,还要查看 sga_target 这个参数的设置;
    如果sga_target=0,就可以向楼上的那样设置!如果不是,那就是oracle
    自动分配的!
      

  6.   

    恩 这位同学补充的好
    呵呵 
    如果SGA_TARGET设置非0的话 那么ORACLE会自动分配
    这个时候如果你设置share_pool_size=100M的话 那么ORACLE会把你这个值当做下限
    就是说ORACLE在自动调整SGA中各个组件大小的时候不会把share_pool_size调到100M以下