减少Oracle内存占用
开发的时候自己机器上开个Oracle是个常见的事情,虽然现在2G内存都成了标配,不过加上IDE,weblogic之类的内存消耗大户,2G也是捉襟见肘。
这两天实在吃不消了,决定拿Oracle开刀。为了不必要的麻烦,动手前还是咨询了下做DBA的同学。经过多次尝试,最终调整oracle.exe这个进程内存和页面峰值占用基本稳定在150-170M。算是基本满足。

其实也就是更改了sga和pga参数。
ALTER SYSTEM SET sga_max_size = 150m SCOPE=SPFILE;
ALTER SYSTEM SET sga_target = 104857600 SCOPE=BOTH;
ALTER SYSTEM SET sga_target = 104857600 SCOPE=BOTH;
再试图把sga_target调整到100m时遇到了错误,大概就是数值过低的意思。也没有继续尝试。PGA我看了下自己的历史峰值也就是40几M,所以调整到50M。毕竟这个Oracle只有我自己连接。
10G的控制台页面里可以轻松修改这几个参数。
关于weblogic,我只尝试只调整了下JVM的参数,为了预防在某些变态deploy时差生out of memery的错误,没敢改太小。
-----------------------------
经过几天的使用,发现sga_target在100M的时候可能会引发ORA 错误堆栈 (00604, 04031),所以又调大了些。