日期:2014-05-16  浏览次数:20377 次

关于Oracle数据库work area size的讨论

单个sessionPGA内存使用量限制有比较多的概念,现在统一梳理一下:

?

1、关于PGA内存是自动管理还是手工管理,以及*_area_size(例如 sort_area_size)参数是否生效

workarea_size_policy:该参数定义数据库PGA内存是否自动管理,同时涉及到SQL运行中各种内存参数设置是否生效;当PGA内存为自动内存管理(workarea_size_policy =auto,有关SQL运行的各种内存参数设置(例如 sort_area_size 排序内存大小)均不生效,但至于SQL运行的各种内存参数设置生否真的生效,还与pga_aggregate_target值有关,具体如下:

1workarea _size_policy设置为autopga_aggregate_target设置为0 ,不会使用自动内存管理,因为当pga_aggregate_target设置为0时,workarea _size_policy自动设置为manual
2workarea _size_policy设置为manualpga_aggregate_target设置为非0,会使用自动内存管理。因为,如果设置pga_aggregate_targe为非0workarea _size_policy自动设置为auto,因此,使用自动管理。
3)如果不设置pga_aggregate_targe,那么系统缺省也是使用自动管理,并且设置该参数的值为SGA20%10M中较大的值。

?