進入SQLPLUS,查詢shared_pool,往往看到結果如下:
SQL> show parameter shared_pool
NAME TYPE VALUE------------------------------------ ----------- ------------------------------shared_pool_reserved_size big integer 20971520shared_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