进入SQLPLUS,查询shared_pool,往往看到结果如下:


SQL> show parameter shared_pool

NAME                                    TYPE              VALUE
------------------------------------ ----------- ------------------------------
shared_pool_reserved_size           big integer         20971520
shared_pool_size                    big integer         419430400


   在Oracle中,shared_pool包含着两部分,其中一个参数是:shared_pool_reserved_size。此参数是用来指定保留的共享池空间大小,用于满足将来的大的连续的共享池空间请求。当共享池出现过多碎片,请求大块空间会导致Oracle大范围的查找并释放共享池内存来满足请求,由此可能会带来较为严重的性能下降,通过设置合适的shared_pool_reserved_size参数,结合shared_pool_reserved_min_alloc参数可以用来避免由此导致的性能下降。


   这个参数理想值应该大到足以满足任何对RESERVED LIST的内存请求,而无需数据库从共享池中刷新对象。这个参数的缺省值是shared_pool_size的5%,通常这个参数的建议值为shared_pool_size参数的10%~20%大小,最大不得超过shared_pool_size的50%。(超过50%可能会导致数据库无法启动,要注意!)


rac系统修改操作(以下修改推荐在没有启用SGA的数据库上,启用SGA的不推荐这样修改)


1.修改第一个节点:


alter system set shared_pool_size=5000M  sid='rac1' scope=spfile;


alter system set shared_pool_reserved_size=500M  sid='rac1' scope=spfile;


shutdown immediate


startup


2.当第一个节点启动后,修改第2个节点:


alter system set shared_pool_size=5000M sid='rac2' scope=spfile;


alter system set shared_pool_reserved_size=500M  sid='rac2' scope=spfile;


shutdown immediate


startup