logo
MyWebStudies - Página de inicio
INGRESAR

REGISTRARSE
Buscador

Gestión automática de memoria

Selecciona el idioma :

Este video solo está disponible para los alumnos que han adquirido el curso

Gestión automática de memoria


La memoria de la instancia se divide en 2 categorías:

  • SGA.
  • PGA.

Ambas memorias pueden gestionarse de forma automáticamente al mismo tiempo. Gestión de la memoria PGA: En la memoria PGA, se guardan los datos solicitados de sentencia SQL y objetos de la sesión, tal como:

  • Tablas temporales.
  • Ordenación de filas.
  • Mapas de bits combinados.
  • Variables.
  • Pila de llamadas.

Para algunos de estos datos es obligatorio que siempre estén en la memoria PGA, por ejemplo las pilas de llamada, pero también existen otro tipos de datos que al no existir espacio libre en la PGA pueden ser grabados en disco, en los tablespaces temporales, tal como son las tablas temporales, aunque esto pueda hacer la operación más lenta.

Cada sentencia SQL usa memoria en la SGA, específicamente en el área SQL de la memoria compartida, algunas sentencias para poder ejecutarse requieren un mínimo de memoria PGA, a la que se le llama área SQL privada.

Es posible ampliar la memoria de la PGA, lo que produciria una reducción del tiempo de ejecución. Hay tres formas de asignación de memoria PGA:

  • Asignación de memoria óptima: Permite que la declaración se ejecute puramente en la memoria PGA, sin la exigencia para hacer el uso del almacenamiento temporal en el tablespace temporal.
  • Asignación de memoria de un pase: Si es insuficiente para la ejecución óptima de las declaraciones, fuerza un pase suplementario sobre los datos.
  • Asignación de memoria multipase: Significa que varios pases serán necesario sobre los datos.

Ejemplo: Cuando se realiza una consulta que tiene la cláusula Order By, los datos recuperados se ordena en la memora PGA de la sesión que realizo la consulta:

  • Si la asignación de memoria es óptima, todas las filas a ordenar estarán en la PGA y se ordenarán allí.
  • Si la asignación de memoria es de un pase (cuando no hay suficiente espacio en la PGA) entonces las filas serán separadas en lotes. Cada lote será leído en la memoria, clasificada y escrito al disco. Estos lotes también tiene una fase de fusión que se realizará en memoria si la asignación de la memoria es de un pase.
  • Si la asignación de memoria es multipase, entonces la fase de fusión así como la fase de ordenación requiere el uso del almacenamiento de disco temporal.

La memoria PGA que necesita una sesión para una sentencia SQL, es liberada cuando esta sentencia es terminada.

Todas las sesiones necesitan un pequeño espacio en la memoria PGA, para indicar el estado de la sesión y cuando requiere de mas memoria se le asignará espacio libre de la PGA. Habrá momentos en los que se dispondrá de mucho espacio libre en la PGA, por ejemplo cuando las sesiones no estén realizando sentencias SQL, y otros momentos en los que se dispondrá de menos espacio libre, ya que puede haber muchas sesiones realizando en el mismo momento sentencia SQL.

La dirección de memoria PGA automática es habilitada con dos parámetros de la instancia:

  • WORKAREA_SIZE_POLICY: Por defecto es auto, Oracle puede adjudicar PGA a las sesiones que lo demanden.
  • PGA_AGGREGATE_TARGET: Especifica la cantidad total de memoria que puede asignar el servidor al PGA. Por defecto su tamaño ha de ser de 10M o el 20% de la memoria SGA.

Gestión de la memoria SGA: La SGA está dividida en estructuras y cada una de ellas tiene diferentes necesidades de memoria:

  • Pool large: O se le ofrece toda la memoria que necesita o dará error.
  • Pool de java: O se le ofrece toda la memoria que necesita o dará error.
  • Pool de streams: O se le ofrece toda la memoria que necesita o dará error.
  • Shared pool: O se le ofrece toda la memoria que necesita o dará error.
  • Cache buffer de la base de datos: Si tiene menos espacio del que requiere no dará error pero bajará el rendimiento.
  • Log buffer: Son negociables, si tiene menos espacio del que requiere no dará error pero bajará el rendimiento.

Tan malo es tener poca memoria como exceso de ella ya que este último no aumenta el rendimiento. Los parámetros indicar el tamaño de cada estructura y para la ge


gestion automatica memoria

Publicaciones Recientes de oracle dba

¿Hay algún error o mejora?

¿Dónde está el error?

¿Cúal es el error?