 |
|
Oracle Using
Automatic Shared Memory Management
Oracle Tips by Burleson Consulting |
This
is an excerpt from "Oracle 10g New Features for Administrators" by
Ahmed Baraka.
With Automatic Shared Memory Management, Oracle will
use internal views and statistics to decide on the best way to
allocate memory among the SGA components. The new process MMAN
constantly monitors the workload of the database and adjusts the
size of the individual memory components accordingly.
Note: In Oracle Database 10g, the database
enables the Automatic PGA Memory Management feature by default.
However, if you set the PGA_AGGREGATE_TARGET parameter to 0 or the
WORKAREA_SIZE_POLICY parameter to MANUAL, Oracle doesn’t use
Automatic PGA Memory Management.
Manual Shared Memory Management
As in previous version, you use the following
parameters to set SGA component sizes:
DB_CACHE_SIZE,
SHARED_POOL_SIZE, LARGE_POOL,
JAVA_POOL_SIZE, LOG_BUFFER and
STREAMS_POOL_SIZE.
In Oracle Database 10g, the value of the
SHARED_POOL_SIZE parameter includes the internal overhead
allocations for metadata such as the various data structures for
sessions and processes.
You must, therefore, make sure to increase the size
of the SHARED_POOL_SIZE parameter when you are upgrading to Oracle
Database 10g. You can find the appropriate value by using the
following query:
select sum(BYTES)/1024/1024
from V$SGASTAT
where POOL = 'shared pool'
Automatic Memory Management
SGA_TARGET specifies the total size of all SGA
components. If SGA_TARGET is specified, then the following memory
pools are automatically sized:
o Buffer cache (DB_CACHE_SIZE)
o Shared pool (SHARED_POOL_SIZE)
o Large pool (LARGE_POOL_SIZE)
o Java pool (JAVA_POOL_SIZE)
o Streams pool (STREAMS_POOL_SIZE) in Release 2
If these automatically tuned memory pools are set to
non-zero values, then those values are used as minimum levels by
Automatic Shared Memory Management.
The following pools are not affected by Automatic
Shared Memory Management:
o Log buffer
o Other buffer caches, such as KEEP, RECYCLE, and
other block sizes
o Streams pool (in Release 1 only)
o Fixed SGA and other internal allocations
o The new Oracle Storage Management (OSM) buffer
cache, which is meant for the optional ASM instance The memory
allocated to these pools is deducted from the total available
for SGA_TARGET when Automatic Shared Memory Management computes
the values of the automatically tuned memory pools.
Note: If you dynamically set SGA_TARGET to zero,
the size of the four auto-tuned shared memory components will remain
at their present levels.
Note: The SGA_MAX_SIZE parameter sets an upper
bound on the value of the SGA_TARGET parameter.
Note: In order to use Automatic Shared Memory
Management, you should make sure that the initialization parameter
STATISTICS_LEVEL is set to TYPICAL or ALL.
You can use the V$SGA_DYNAMIC_COMPONENTS view to see
the values assigned to the auto-tuned components.
Whereas the V$PARAMETER will display the value you
set to the auto-tuned SGA parameter, not the value assigned
by the ASMM.
When you restart the instance, by using SPFILE
Oracle will start with the values the auto-tuned memory parameters
had before you shut down the instance.
COLUMN COMPONENT
FORMAT A30
SELECT COMPONENT , CURRENT_SIZE/1024/1024 MB
FROM V$SGA_DYNAMIC_COMPONENTS
WHERE CURRENT_SIZE <>0
 |
If you like Oracle tuning, see the
book "Oracle
Tuning: The Definitive Reference", with 950 pages of tuning
tips and scripts.
You can buy it direct from the publisher for 30%-off and get
instant access to the code depot of Oracle tuning scripts. |