最近发现在内存的管理上还是存在一定的理解偏差,拿来官当看下
总结如下:
下级设为0,则为自动管理;
If you create your database with Database Configuration Assistant (DBCA) and choose the basic installation option, automatic memory management is enabled when system memory is less than or equal to 4 gigabytes. When system memory is greater than 4 gigabytes, automatic memory management is disabled, and automatic shared memory management is enabled. If you choose advanced installation, then DBCA enables you to select automatic memory management or automatic shared memory management.
In a text initialization parameter file, if you omit the line for MEMORY_MAX_TARGET
and include a value for MEMORY_TARGET
, then the database automatically sets MEMORY_MAX_TARGET
to the value of MEMORY_TARGET
. If you omit the line for MEMORY_TARGET
and include a value for MEMORY_MAX_TARGET
, then the MEMORY_TARGET
parameter defaults to zero. After startup, you can then dynamically change MEMORY_TARGET
to a nonzero value, provided that it does not exceed the value of MEMORY_MAX_TARGET
.
MEMORY_MAX_TARGET和MEMORY_TARGET的关系
With MEMORY_TARGET
set, the SGA_TARGET
setting becomes the minimum size of the SGA and the PGA_AGGREGATE_TARGET
setting becomes the minimum size of the instance PGA. By setting both of these to zero as shown, there are no minimums, and the SGA and instance PGA can grow as needed as long as their sum is less than or equal to the MEMORY_TARGET
setting. The sizing of SQL work areas remains automatic.
MEMORY_TARGET和SGA_TARGET的关系
明确了一个概念:sga_target和pga_aggregate_target是最小值,不是一般的value意义
You can omit the statements that set the SGA_TARGET
and PGA_AGGREGATE_TARGET
parameter values to zero and leave either or both of the values as positive numbers. In this case, the values act as minimum values for the sizes of the SGA or instance PGA.
In addition, you can use the PGA_AGGREGATE_LIMIT
initialization parameter to set an instance-wide hard limit for PGA memory. You can setPGA_AGGREGATE_LIMIT
whether or not you use automatic memory management.