PGA(Program Global Area程序全局区)是一块包含一个服务进程的数据和控制信息的内存区域。它是Oracle在一个服务进程启动是创建
NAME
VARCHAR2(64)
统计的名称,包括:
aggregate PGA target parameter – 当前参数PGA_AGGREGATE_TARGET的值。如果参数没有设置,则值为0并且PGA内存自动管理被关闭。
aggregate PGA auto target – 在自动管理模式下,可用于工作区的总的PGA内存数。这个数值是动态的,和PGA_AGGREGATE_TARGET 的值以及当前工作区的负载有关,Oracle会动态调整它。
这个值相对与PGA_AGGREGATE_TARGET来说很小。其他很大一部分的PGA内存都被用于系统的其他组件(如PLSQL和Java的内存)。DBA必须保证在自动模式下有足够的PGA内存用于工作区。
global memory bound – 自动模式下可用的工作区的最大大小。Oracle根据当前工作区的负载动态调整这个值。当系统中活动的工作区数量增加时,global memory bound一般会下降。如果global bound 降到低于1M,则要考虑增加PGA_AGGREGATE_TARGET了。
total PGA allocated – 当前实例分配的总的PGA内存大小。Oracle会试图保持这个值在PGA_AGGREGATE_TARGET以内。然而,当工作区负载增加得非常快或者PGA_AGGREGATE_TARGET被设置得很小时,这个值也许会在一段时间内超过PGA_AGGREGATE_TARGET。
total PGA used – 当前被工作区消耗得PGA内存。这个数值也可以用于计算有多少PGA内存被其他组件(如PLSQL或Java)所消耗。
total PGA used for auto workareas – 自动模式下,当前多少PGA内存被工作区所消耗。这个数值也可以用于计算有多少PGA内存被其他组件(如PLSQL或Java)所消耗。
total PGA used for manual workareas –手动模式下,当前多少PGA内存被工作区所消耗。这个数值也可以用于计算有多少PGA内存被其他组件(如PLSQL或Java)所消耗。
over allocation count – 这个数值是自从实例启动后累加的。当PGA_AGGREGATE_TARGET设置非常小或工作区负载增长很快时,会超额分配PGA内存(分配的值大于PGA_AGGREGATE_TARGET)。这种情况发生时,Oracle不能限制PGA内存小于PGA_AGGREGATE_TARGET,,只能分配实际需要的PGA内存。此时,建议通过建议器视图V$PGA_TARGET_ADVICE来增加PGA_AGGREGATE_TARGET的大小。
bytes processed – 自从实例启动后,被内存SQL操作处理的字节数。
extra bytes read/written – 自从实例启动后,需要额外输入数据所处理的字节数。当工作区无法在最佳状态下运行时,就需要进行这个额外处理。
cache hit percentage – Oracle计算出来的一个与PGA内存组件性能相关的数据,是自从实例启动后累加的。如果这个值是100%,则表示实例启动后,所有系统使用到的工作区都分配了最佳的PGA内存。
当工作区无法在最佳状态下运行,就需要进行额外的数据输入处理,这将会降低cache hit percentage。