Automatic Shared Memory Management (ASMM) es una funcionalidad de Oracle que gestiona automáticamente los componentes de la memoria SGA (System Global Area), pero no administra la PGA.
En ASMM, el DBA define un valor total de memoria para la SGA (SGA_TARGET), y Oracle distribuye dinámicamente esta memoria entre los distintos componentes, como:
- Buffer Cache: Almacena bloques de datos recuperados de disco.
- Shared Pool: Contiene la caché de instrucciones SQL y PL/SQL.
- Large Pool: Se usa para operaciones de recuperación y paralelismo.
- Java Pool: Espacio para ejecución de código Java.
- Streams Pool: Espacio usado por Oracle Streams.
Diferencia entre ASMM y AMM:

Configuración de ASMM en Oracle 19c
Si quieres activar ASMM, debes deshabilitar AMM y configurar los siguientes parámetros:
SGA_TARGET → Define cuánta memoria será administrada automáticamente en la SGA.
SGA_MAX_SIZE → Especifica el tamaño máximo permitido para la SGA.
PGA_AGGREGATE_TARGET → Debe configurarse manualmente, ya que ASMM no administra la PGA.
Práctica completa: Configuración de ASMM
A continuación, te explico cómo configurar ASMM en Oracle 19c con un ejemplo práctico.
Verificar el método de gestión de memoria actual
Antes de cambiar la configuración, verifica si AMM está activado:
SHOW PARAMETER MEMORY_TARGET;
SHOW PARAMETER SGA_TARGET;
SHOW PARAMETER PGA_AGGREGATE_TARGET;
Si MEMORY_TARGET tiene un valor distinto de 0, significa que AMM está activado y debe ser deshabilitado antes de configurar ASMM.
Deshabilitar AMM (si está activado)
Si MEMORY_TARGET está en uso, desactívalo:
ALTER SYSTEM SET MEMORY_TARGET = 0 SCOPE=SPFILE;
ALTER SYSTEM SET MEMORY_MAX_TARGET = 0 SCOPE=SPFILE;
Configurar ASMM
Ahora, asignemos 6 GB de memoria a la SGA y 2 GB a la PGA:
ALTER SYSTEM SET SGA_TARGET = 6G SCOPE=SPFILE;
ALTER SYSTEM SET SGA_MAX_SIZE = 6G SCOPE=SPFILE;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 2G SCOPE=SPFILE;
Para aplicar los cambios, reinicia la base de datos:
SHUTDOWN IMMEDIATE;
STARTUP;
Validar la configuración de ASMM
Verifica que ASMM está funcionando correctamente con:
SHOW PARAMETER SGA_TARGET;
SHOW PARAMETER SGA_MAX_SIZE;
SHOW PARAMETER PGA_AGGREGATE_TARGET;
También puedes verificar cómo Oracle está distribuyendo la memoria:
SELECT COMPONENT, CURRENT_SIZE, MIN_SIZE, MAX_SIZE
FROM V$SGA_DYNAMIC_COMPONENTS;
Este comando mostrará cuánto está asignando Oracle a cada componente de la SGA en tiempo real.
Simular carga de trabajo y monitoreo
Si deseas observar cómo Oracle ajusta los tamaños de memoria bajo carga, puedes ejecutar múltiples consultas pesadas y monitorear la memoria con:
SELECT NAME, BYTES FROM V$SGAINFO;
Otro reporte útil es:
SELECT POOL, NAME, BYTES FROM V$SGASTAT WHERE POOL IS NOT NULL;
Esto te mostrará la distribución detallada de la memoria en la SGA.
Ajustes y administración de ASMM
Casos comunes de ajuste de memoria en ASMM
Caso 1: Necesito aumentar la memoria SGA
Si Oracle está usando más memoria de la asignada, puedes incrementarla así:
ALTER SYSTEM SET SGA_TARGET = 8G SCOPE=SPFILE;
ALTER SYSTEM SET SGA_MAX_SIZE = 8G SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP;
Caso 2: PGA está consumiendo demasiada memoria
Si notas que procesos están consumiendo demasiada memoria en PGA, puedes ajustar el valor de PGA_AGGREGATE_TARGET
ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 4G SCOPE=SPFILE;
SHUTDOWN IMMEDIATE;
STARTUP;Caso 3: Ver cuánto Oracle recomienda asignar a PGA
Para ver recomendaciones de memoria para la PGA, usa:
Caso 3: Ver cuánto Oracle recomienda asignar a PGA
Para ver recomendaciones de memoria para la PGA, usa:
SELECT * FROM V$PGA_TARGET_ADVICE;
Comparación de escenarios de uso: ¿AMM o ASMM?

- ASMM permite que Oracle ajuste dinámicamente los componentes de la SGA, pero no administra la PGA.
- Es una opción intermedia entre AMM y la configuración completamente manual.
- Requiere ajuste manual de la PGA, lo que permite un mayor control sobre la asignación de memoria.
- Recomendado para bases de datos de tamaño mediano o grande que necesiten optimización de memoria en la SGA sin perder flexibilidad en la PGA.

Si necesitas mayor automatización, usa AMM. Si quieres mayor control y optimización, usa ASMM con ajustes manuales en la PGA.






Deja un comentario