share pool 过大会导致系统占用cpu时间进行内存调度,影响os的正常
 运行,同时不合理的sql语句也会导致share pool中的碎片增多,影响
 share pool的使用效率. 建议:
    定期做statspack的报告,以确定当前系统的share pool设置
    是否合理.

解决方案 »

  1.   

    当 share pool 过大,如果应用的 sql 参数化做的不好,造成sql重用率过低,会是的shared pool的碎片过多,shared pool latch争用会非常明显,造成系统性能严重下降.shared pool 最好不要大于 2G ,否则要格外注意 sql 的重用率. oracle 的内存管理很复杂,SGA 越大,管理这些内存的开销也会变大,强烈建议够用就可以了,不要开的过大.
      

  2.   

    shared pool 最好不要大于 2G
    --------------------------
     很多情况下,共享池如果大于500M,机器就要歇菜了重建共享池可以使用 alter system flush shared_pool命令,不建议
    经常使用.如果系统中动态sql应用比较多,可以考虑适当加大共享池容量,否则就会
    导致ora-04031错误(也有可能是oracle的本身bug,应综合分析)
      

  3.   

    如何定期做statspack的报告?
    statspack是什么东西?