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

 

posted @   johnsonshu  阅读(8121)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示