PGA:Program Global Area(程序全局区)或Process Global Area(进程全局区),PGA是一块包含一个操作系统进程或线程专用的内存,不允许系统中的其他进程或线程访问。
PGA存储了进程所需要访问的数据(Data)和控制信息(Control Information)的内存区域。
PGA的内存管理模式
手动PGA内存管理:这种情况下,你需要告诉Oracle,如果一个特定进程中需要排序或散列,允许使用多少内存来完成这些排序或散列。
自动PGA内存管理:你需要告诉Oracle,在系统范围内可以使用多少内存。
(Oracle 9iR1后开始支持PGA的自动管理。)
简单的说,对于成天在数据库运行的应用,建议使用PGA自动内存管理。手动内存管理,适用于大型批处理作业(特殊时段,它们是数据库中唯一的活动)。
自动PGA内存管理
PGA自动管理下,PGA区域内存可以动态扩大和回收。PGA内存管理模式由WORKAREA_SIZE_POLICY控制。
1) 设为MANUAL,启用手动内存管理。
2) 设为AUTO,并且PGA_AGGREGATE_TARGET不为0时,启用自动内存管理。
SQL> show parameter workarea_size_policy
NAME