Oracle 19c, como otras versiones de Oracle Database, utiliza varias estructuras de memoria para gestionar sus operaciones. Las dos principales áreas de memoria son la System Global Area (SGA) y la Program Global Area (PGA).

System Global Area (SGA)

La SGA es un área de memoria compartida que contiene datos y estructuras que son utilizados por todos los procesos de usuario que acceden a la base de datos. Contiene información crítica sobre la instancia de la base de datos, como cachés de datos, cachés de SQL, y estructuras de control de la base de datos.

Características: La SGA es accesible para todos los procesos de servidor y contiene componentes que aseguran que múltiples usuarios pueden acceder a la base de datos de manera concurrente y eficiente.

  • Buffer Cache: Almacena las copias de bloques de datos que se leen desde el disco. Esto mejora el rendimiento al reducir la necesidad de lecturas de disco.
  • Shared Pool: Contiene estructuras de datos que son compartidas entre los usuarios, como las cachés de instrucciones SQL y PL/SQL, y datos de metadatos.
  • Redo Log Buffer: Almacena la información de cambio para garantizar la recuperación en caso de fallo. Esta información es escrita en los redo logs en disco.
  • Large Pool: Una área opcional que se utiliza para operaciones de asignación de memoria, como la ejecución de RMAN (Recovery Manager) y ciertas operaciones de backup.
  • Java Pool: Almacena datos para la ejecución de aplicaciones Java en la base de datos.
  • Streams Pool: El Streams Pool es esencial en escenarios donde se necesita replicar datos entre bases de datos, facilitando la integración y sincronización de información en tiempo real.

Program Global Area (PGA)

El PGA es un área de memoria privada que se utiliza por un solo proceso de usuario. A diferencia de la SGA, la PGA no es compartida.

Es asignada a cada proceso o sesión de usuario. Almacena datos y variables locales que son específicos para ese proceso, como la información de ejecución de un programa PL/SQL, las variables de cursor y la información de estado.

Características: La PGA no es compartida y solo es accesible desde el proceso que la creó. Se utiliza principalmente para gestionar operaciones de procesamiento individual del usuario.

  • Area de Estado de la sesión: Almacena información relacionada con la sesión actual, como el estado y la configuración del usuario.
  • Area de Trabajo: Utilizada para realizar operaciones que requieren procesamiento intensivo, como ordenamientos y agrupamientos. Esto incluye:
    • Buffers de operaciones de ordenamiento (SORT).
    • Segmentos de memoria para operaciones de procesamiento de consultas.
  • Stacks de Proceso: Cada proceso tiene una pila que se utiliza para almacenar información de llamada, parámetros y variables locales de programa.

Entender estas estructuras es crucial para optimizar el rendimiento de la base de datos y garantizar que se utilice el recurso de memoria de la manera más eficiente posible.

Comunicación entre SGA y PGA

La interacción entre la SGA y la PGA se realiza a través de diversas operaciones en las que un proceso de usuario (que utiliza la PGA) necesita acceso a datos contenidos en la SGA.

Algunos puntos clave sobre esta comunicación:

  1. Acceso a Datos: Cuando un usuario ejecuta consultas SQL, estas consultas acceden primero a la SGA para obtener datos que puedan estar en la caché (buffer cache) y evitar el acceso a disco, lo que mejoraría el rendimiento.
  2. Manejo de Resultados: Una vez que los datos se recuperan de la SGA, se procesan en la PGA local al proceso del usuario. Por ejemplo, los resultados de una consulta SQL se almacenan en la PGA para ser procesados y devueltos al usuario.
  3. Ejecución de Consultas: Las áreas multidimensionales de la SGA, como el Shared Pool, contienen información sobre los planes de ejecución de las consultas SQL. Cuando se necesita ejecutar una consulta, esta información es consultada desde la SGA y el procesamiento se realiza en la PGA.

Básicamente la SGA y la PGA trabajan en conjunto para optimizar el rendimiento de las operaciones de la base de datos. La SGA proporciona el contexto global y compartido, mientras que la PGA maneja la información específica de cada sesión de usuario. Esta separación permite a Oracle maximizar la eficiencia en la gestión de la memoria y el acceso a los datos.

Si quieres probar tus conocimientos acerca de este tema, contesta el siguiente formulario:

Deja un comentario

Tendencias