在虚拟机上安装的windows 2003,oracle11g,运行后发现一个问题,就是不使用的情况下,内存随时间不断增大,两天时间居然占了6G多,导致程序与pl/sql访问时报那监听失败.各位大侠看看什么情况.通过查看v$process,v$session,v$sqltext表查出在往mgmt_job_exec_summary里面写东西,但事前我已把一些job停掉的(my objects下),

解决方案 »

  1.   

    Session生命周期过短,对于ORACLE来说要花费大量的CPU时间来建立和关闭客户进程,要知道创建一个session是需要申请和获取内存块,而且要请求cpu调度资源,这反而得不偿失。 oracle的内存管理是空闲时,逐渐回收内存,拼成一个大的内存段,一般情况下问题不大,内存占用过大,不是SQL写的不好(90%的时候都是)就是初始化参数内存分配不合理。
       如果你的内存分配是默认的,我建议可以先从内存分配入手,内存分配的基本原则可以参照http://www.cnblogs.com/alex-blog/articles/2470757.html