oracle.exe 内存占用过大

现象:

明明各个schema 占用的磁盘空间都不大。 oracle.exe 却占用了差不多 3G 的内存。

解决:

查了google,各种英文关键字没有找到原因。 最后,中文检索到了。

https://www.zhihu.com/question/31583228

oracle.exe一直占很大内存,正常服务时将近7G,服务器内存才12G,是什么原因?

Oracle一线DBA简答。
不要迷信所谓大牛。这种问题随便抓个搞Oracle数据库的即可。
Oracle内存组件中,有一个叫做SGA的部分,这个部分如果设置了7G,启动之后,立马从内存中分割出7G,哪怕当前Oracle只用了100M。这7G也是不可以被其他任何机制回收和利用的。
而且Oracle是典型的耗内存应用,SGA组件里的BufferCache放的是真实的用户数据。可以避免分散的磁盘操作,而直接在SGA中完成对数据库的修改加工。
SGA是主要占内存的组件。其他PGA等等为用多少分配多少的基本原则。会发生回收机制的。
除此之外,你可以通过show parameter sga查看SGA的具体设置。

因此,用了下面的命令解决了。
alter system set sga_target=800m scope=both

另外,下面的文章也可以参考

http://www.orafaq.com/wiki/SGA_target

原文地址:https://www.cnblogs.com/johnsonshu/p/6860739.html