La gestión de memoria ASMM en Oracle 11g

24.12.2013 00:12
 

 

Con la función de  gestión de memoria compartida automática de Oracle 11g ( ASMM ) la gestión de los diversos parámetros de memoria de Oracle se ha convertido esencialmente en  el establecimiento de un solo parámetro. Sin embargo para entender cómo funciona la gestión de memoria en versiones anteriores de Oracle así como para entender qué es lo que realmente está sucediendo en la memoria es conveniente tener algunos conceptos básicos claros.


Las dos áreas de memoria principal de Oracle son el Área Global del Sistema (SGA) y el Área Global de Programa (PGA) . En el SGA, la memoria está dividida en varias  áreas para el proceso  de  sentencias SQL, bloques de datos, y log buffers. El PGA es el área de carga de trabajo para los procesos del servidor.

En Oracle9i y Oracle 10g , los  parámetros de memoria dinámica permiten ajustes dentro de la SGA. Estableciendo   los parámetros SGA_MAX_SIZE y SGA_TARGET, la memoria se ajusta entre DB_CACHE_SIZE, SHARED_POOL_SIZE, y los otros pool (tales como LARGE_POOL_SIZE y JAVA_POOL_SIZE). Esto permite el proceso a los sistemas que pueden tener diferentes tipos de carga de trabajo en momentos diferentes. Sin intervención manual, las asignaciones pueden ajustarse en base  a las necesidades de memoria de las diferentes áreas. Por supuesto, para  el establecimiento de los parámetros SGA_MAX_SIZE y SGA_TARGET, las estadísticas deben estar en el nivel óptimo para que al ser leídas proporcionen los datos necesarios para ajustar las áreas de memoria. Cabría deducir entonces  que situando SGA_TARGET y SGA_MAX_SIZE a los mismos valores, se está asignando un valor máximo de memoria a Oracle? Y, en ese caso, ¿por qué no hay  un solo parámetro para ajustarlos?
En Oracle 11g y con el uso de  ASMM, se establece solamente el MEMORY_TARGET y Oracle se encarga del resto. En esta versión, la asignación de memoria en el sistema operativo se divide en fragmentos  más pequeños. Los segmentos de memoria compartida están disponibles para que Oracle los utilice para el SGA.