Header Ads

ad728
  • Breaking News

    Automatic Memory Management (AMM) in Oracle Database 11g R2


    Identify Memory Requirement.

    Following queries show you how to display the relevant memory information and how to combine with a single statement to calculate the required values.

    -- Individual values.
    COLUMN name FORMAT A30
    COLUMN value FORMAT A10

    SELECT name, value
    FROM   v$parameter
    WHERE  name IN ('pga_aggregate_target', 'sga_target')
    UNION
    SELECT 'maximum PGA allocated' AS name, TO_CHAR(value) AS value
    FROM   v$pgastat
    WHERE  name = 'maximum PGA allocated';

    -- Calculate MEMORY_TARGET
    SELECT sga.value + GREATEST(pga.value, max_pga.value) AS memory_target
    FROM (SELECT TO_NUMBER(value) AS value FROM v$parameter WHERE name = 'sga_target') sga,
         (SELECT TO_NUMBER(value) AS value FROM v$parameter WHERE name = 'pga_aggregate_target') pga,
         (SELECT value FROM v$pgastat WHERE name = 'maximum PGA allocated') max_pga;

    Assuming our required setting was 10G, we might issue the following statements.

    CONN / AS SYSDBA
    -- Set the static parameter. Leave some room for possible future growth without restart.
    ALTER SYSTEM SET MEMORY_MAX_TARGET=15G SCOPE=SPFILE;

    -- Set the dynamic parameters. Assuming Oracle has full control.
    ALTER SYSTEM SET MEMORY_TARGET=10G SCOPE=SPFILE;
    ALTER SYSTEM SET PGA_AGGREGATE_TARGET=0 SCOPE=SPFILE;
    ALTER SYSTEM SET SGA_TARGET=0 SCOPE=SPFILE;
    ALTER SYSTEM SET SGA_MAX_SIZE=0 SCOPE=SPFILE;


    -- Restart instance.
    SHUTDOWN IMMEDIATE;
    STARTUP;

    Once the database is restarted the MEMORY_TARGET parameter can be amended as required without an instance restart.

    No comments

    Note: Only a member of this blog may post a comment.