Oracle实例中的内存使用分为两类:程序全局区(program global area, PGA)和系统全局区(system global area, SGA)。前者专门供每个会话使用,后者由所有Oracle进程共享。
对于PGA_AGGREGATE_TARGET参数的设置,Oracle提供的建议方案,如下:
1.对于OLTP系统
PGA_AGGREGATE_TARGET = (<Total Physical Memory > * 80%) * 20% 2.对于DSS系统
PGA_AGGREGATE_TARGET = (<Total Physical Memory > * 80%) * 50%
注:OLTP与DSS区别,可参考链接:https://blog.youkuaiyun.com/MyySophia/article/details/78843208
也就是说,对于一个单纯的数据库服务器,通常我们需要保留20%的物理内存给操作系统使用,剩余80%可以分配给Oracle使用。Oracle使用的内存分为两部分SGA和PGA,那么PGA可以占用Oracle消耗总内存的20%(OLTP系统)至50%(DSS/OLAP系统)。
当然,这只是一个建议设置,更进一步的我们应该根据数据库的具体性能指标来调整和优化内存的使用。