Free Newsletters:
Database Journal  
DBAnews  

DBASupport

 The Knowledge Center for Oracle Professionals

Search DBAsupport:
 
HOME 11g Central 10g Central 9i Central 8i Central Oracle News Scripts FAQ OCP Zone Resources Technical Docs Tools & Utilities Forums
internet.com

» HOME
» FEATURES
    11g Central
    10g Central
    9i Central
    8i Central
    Oracle News
» COMMUNITY
    Scripts
    Forums
    FAQ
    OCP Zone
» RESOURCES
    Resources
    Technical Docs
    Tools & Utilities
    Tech Jobs
Marketplace Partners
Become a Marketplace Partner


internet.commerce
Be a Commerce Partner












internet.com
IT
Developer
Internet News
Small Business
Personal Technology

Search internet.com
Advertise
Corporate Info
Newsletters
Tech Jobs
E-mail Offers


   DBAsupport.com > Oracle > Oracle 9i Central > Featured Stories




Senior Systems Administrator Windows (IL)
Next Step Systems
US-IL-Chicago

Justtechjobs.com Post A Job | Post A Resume

Activating, Monitoring, and Tuning Automatic PGA Memory Management via PGA_AGGREGATE_TARGET Under Oracle 9i
Jim Czuprynski, Jim.Czuprynski@us.fujitsu.com


Using PGA_AGGREGATE_TARGET To Activate Automatic Memory Management

To activate automatic PGA memory management, the PGA_AGGREGATE_TARGET initialization parameter must be set to a non-zero value (Oracle defaults its setting to zero unless overridden). However, just as we would do with tuning the SGA, Oracle recommends setting an initial value, evaluating the results over time, and then tuning the PGA based on those results.

The recommended initial setting for PGA_AGGREGATE_TARGET depends on whether the database is primarily being used for OLTP processing, which use relatively small amounts of PGA memory, or for decision support systems (DSS), which typically handle much larger, long-running, memory intensive queries. In either case, Oracle suggests using no more than 80% of the total memory available for the database instance to allow enough memory for other non-Oracle applications running on the server.

In my case, my server had 8GB available memory for the instance. For an OLTP-based server, Oracle recommends allocating 20% to the PGA, so PGA_AGGREGATE_TARGET would be set to approximately 1310MB ((8192 MB x 80%) x 20%). For a DSS-based server, Oracle recommends a factor of at least 50%, or approximately 3276MB (8192MB x 80%) x 50%). During my testing, I hedged my bet by quite a bit, knowing that my database server is almost totally dedicated to OLTP, and initially allocated 400MB for PGA_AGGREGATE_TARGET.

After applying the change to my database's INIT.ORA file and restarting the database, I confirmed the results by querying V$PGASTAT. This is a new dynamic view available with Oracle 9i and is useful for obtaining instance-level statistics about PGA memory usage and how well automatic memory management is working:

SQL> SELECT NAME, VALUE FROM v$pgastat;

NAME				VALUE
------------------------------------- 	----------
aggregate PGA target parameter		419430400
aggregate PGA auto target		361433088
global memory bound			20971520
total PGA inuse			17833984
total PGA allocated			34810880
maximum PGA allocated			124318720
total freeable PGA memory		0
PGA memory freed back to OS		0
total PGA used for auto workareas	0
maximum PGA used for auto workareas	60204032
total PGA used for manual workareas	0
maximum PGA used for manual workareas	246784
over allocation count			0
total bytes processed			5866293248
extra bytes read/written		720095232
cache hit percentage			89.06

The statistics returned explain what's going on inside the PGA. Here is a breakout of the more important ones, according to Oracle:

  • aggregate PGA target parameter shows the actual value set for PGA_AGGREGATE_TARGET (in this case, 400MB). This parameter confirms if automatic PGA memory management has been activated--if it hasn't been, then this value will be zero.

  • The Oracle DBMS dynamically derives the value for aggregate PGA auto target from the value set for PGA_AGGREGATE_TARGET and is continuously adjusted by Oracle. It is the amount of memory that can be used for work areas running in automatic mode. If this value is small, it generally indicates that other components of the system--for example, PL/SQL or Java memory--are using a lot of PGA, leaving little behind for work areas to be managed in automatic mode.

  • global memory bound shows the maximum size of a work area executed in automatic mode. The value is constantly adjusted by Oracle based on the current state of the work area workload and generally decreases when the number of active work areas increase. Oracle recommends that this value should never reach 1MB; if it does, it's probably an indicator that PGA_AGGREGATE_TARGET should be increased.

  • total PGA allocated yields the total amount of PGA memory that Oracle has allocated for the instance, while total PGA used for auto workareas tells how much memory is in use by other processes like PL/SQL or Java. Subtracting the second number from the first yields the total PGA memory used by these other processes.

  • over allocation count tells how much PGA memory has been over-allocated cumulatively since the instance was started. If the value returned is anything over zero, it is an indication that the size of PGA_AGGREGATE_TARGET should be increased because it means that Oracle could not honor at least one request for additional PGA work areas.

  • total bytes processed represents how many bytes were processed since instance startup, while extra bytes read/written represents how many bytes were processed via one-pass or multi-pass processing. These two values are used to calculate the cache hit percentage based on the following formula: (100 * total bytes processed) / (total bytes processed + extra bytes read/written).

Page 1 Page 3


Back to DBAsupport.com






The Network for Technology Professionals

Search:

About Internet.com

Legal Notices, Licensing, Permissions, Privacy Policy.
Advertise | Newsletters | E-mail Offers