According to the official
Oracle documentation, the parameter PGA_AGGREGATE_LIMIT
is set by default to the greater of:
- 2 GB (default value)
- 200% of the value of the parameter PGA_AGGREGATE_TARGET
- 3 MB multiplied by the value of the parameter PROCESSES
This parameter must be
less than the following calculation:
- Less than 1.2 X RAM - EMS
Some important details:
- Oracle does not recommend set this value below the default
- If the settled value is 0, there is no limit for use of PGA
- Oracle Database will handle parallel queries as a single unit
Checking the default
value:
SQL>
show parameter pga
NAME TYPE VALUE
------------------------------------ ------
NAME TYPE VALUE
------------------------------------ ------
pga_aggregate_limit big integer 2G
pga_aggregate_target big integer 100M
pga_aggregate_target big integer 100M
Changing the parameter value processes , to see how is the PGA_AGGREGATE_LIMIT
:
SQL>
show parameter processes
NAME TYPE VALUE
NAME TYPE VALUE
------------------------------
-----
processes integer 300
SQL> alter system set processes scope = spfile = 1000;
System altered.
processes integer 300
SQL> alter system set processes scope = spfile = 1000;
System altered.
After changing the
parameter processes to restart the
database.
Checking alert.log :
Mon Jan 27 16:25:17 2014
Using default pga_aggregate_limit of 3000 MB
Using default pga_aggregate_limit of 3000 MB
SQL>
show parameter pga_aggregate_limit
NAME TYPE VALUE
------------------------------------ ------ ------------------------------ -----
pga_aggregate_limit big integer 3G
NAME TYPE VALUE
------------------------------------ ------ ------------------------------ -----
pga_aggregate_limit big integer 3G
Trying to decrease the
parameter value PGA_AGGREGATE_LIMIT , to one less than the allowed value:
SQL> alter system set
pga_aggregate_limit = 100m;
alter system set pga_aggregate_limit
= 100m
*
ERROR at line 1:
ORA-02097: parameter can not be
modified because specified value is invalid
ORA-00093: pga_aggregate_limit must
be between 2048M and 100000G
Remembering that it is possible to
reduce this value directly in the PFILE or SPFILE .
When running code that
exceeds the maximum allowed value:
Thu Jan 27 16:25:17 2014
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_23340.trc (= incident 12901):
ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_23340.trc (= incident 12901):
ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT
taken from the
documentation excerpt:
Oracle Database aborts or terminates the sessions or processes are
consuming the most que untunable PGA memory in The Following order:
- Calls for que sessions are consuming the most untunable PGA memory are aborted.
- If PGA memory usage is still over the PGA_AGGREGATE_LIMIT , Then the sessions and processes are consuming the most That untunable PGA memory are terminated.
No comments:
Post a Comment