martes, 13 de marzo de 2018

Temas Vistos en Clase ABD



Resultado de imagen para sga base de datos




-- SGA:


SGA (Área Global del Sistema) es una estructura básica de memoria de Oracle que sirve para facilitar la transferencia de información entre usuarios y también almacena la información estructural de la BD más frecuentemente requerida.

El área global del sistema y un conjunto de procesos de la base de datos constituyen una instancia de una base de datos Oracle. La base de datos Oracle automáticamente reserva memoria para el área global del sistema cuando se inicia una instancia, y el sistema operativo reclama la memoria cuando se apaga dicha instancia. Cada instancia tiene su propia SGA.


Está compuesto por:


- Database Buffer Cache (Buffers de BD):

Es el caché que almacena los bloques de datos leídos de los segmentos de datos de la BD, tales como tablas, índices y clusters. Los bloques modificados se llamas bloques sucios. El tamaño de buffer caché se fija por el parámetro DB_BLOCK_BUFFERS.

- Buffer Redo Log:
Los registros Redo describen los cambios realizados en la BD y son escritos en los ficheros redo log para que puedan ser utilizados en las operaciones de recuperación hacia adelante, roll-forward, durante las recuperaciones de la BD. Pero antes de ser escritos en los ficheros redo log son escritos en un caché de la SGA llamado redo log buffer. El servidor escribe periódicamente los registrosredo log en los ficheros redo log. El tamaño del buffer redo log se fija por el parámetro LOG_BUFFER.

- Shared SQL Pool (Área de SQL Compartido, ):


En esta zona se encuentran las sentencias SQL que han sido analizadas. El análisis sintáctico de las sentencias SQL lleva su tiempo y Oracle mantiene las estructuras asociadas a cada sentencia SQL analizada durante el tiempo que pueda para ver si puede reutilizarlas. Antes de analizar una sentencia SQL, Oracle mira a ver si encuentra otra sentencia exactamente igual en la zona de SQL compartido. Si es así, no la analiza y pasa directamente a ejecutar la que mantiene en memoria. El tamaño del caché está gestionado internamente por el servidor, pero es parte del shared pool, cuyo tamaño viene determinado por el parámetro SHARED_POOL_SIZE.


-- Arquitectura de un manejador de bases de datos (DBMS):


Una base de datos en ejecución consta de 3 cosas:


  • Archivos:
    • Control (ctl): almacenan información acerca de la estructura de archivos de la base.
    • Rollback (rbs): cuando se modifica el valor de alguna tupla en una transacción, los valores nuevos y anteriores se almacenan en un archivo, de modo que si ocurre algún error, se puede regresar (rollback) a un estado anterior.
    • Redo (rdo): bitácora de toda transacción, en muchos dbms incluye todo tipo de consulta incluyendo aquellas que no modifican los datos.
    • Datos (dbf): el tipo más común, almacena la información que es accesada en la base de datos.
    • Indices (dbf) (dbi): archivos hermanos de los datos para acceso rápido.
    • Temp (tmp): localidades en disco dedicadas a operaciones de ordenamiento o alguna actividad particular que requiera espacio temporal adicional.
  • Memoria:
    • Shared Global Area (SGA): es el área más grande de memoria y quizás el más importante
      • Shared Pool: es una caché que mejora el rendimiento ya que almacena parte del diccionario de datos y el parsing de algunas consultas en SQL
      • Redo Log Buffer: contiene un registro de todas las transacciones dentro de la base, las cuales se almacenan en el respectivo archivo de Redo y en caso de siniestro se vuelven a ejecutar aquellos cambios que aún no se hayan reflejado en el archivo de datos (commit).
      • Large Pool: espacio adicional, generalmente usado en casos de multithreading y esclavos de I/O.
      • Java Pool: usado principalmente para almacenar objetos Java
    • Program Global Area (PGA): información del estado de cursores/apuntadores
    • User Global Area(UGA): información de sesión, espacio de stack
  • Procesos:
    • Threading
    • System Monitor: despierta periódicamente y realiza algunas actividades entre las que se encuentran la recuperación de errores, recuperación de espacio libre en tablespaces y en segmentos temporales.
    • Process Monitor: limpia aquellos procesos que el usuario termina de manera anormal, verificando consistencias, liberación de recursos, bloqueos.
    • Database Writer: escribe bloques de datos modificados del buffer al disco, aquellas transacciones que llegan a un estado de commit.
    • Log Writer: escribe todo lo que se encuentra en el redo log buffer hacia el redo file
    • Checkpoint: sincroniza todo lo que se tenga en memoria, con sus correspondientes archivos en disco.

-- Tipos de instancias de un DBMS:


Online Transaction Processing (OLTP): compra/venta, telemarketing

  • Segmentos cortos de rollback
  • Shared Pool muy largo
  • Redo log suficiente
  • Indices en discos separados
  • Segmentos temporales pequeños

Decision Support Systems (DSS): datawarehouse:

  • Segmentos largos de rollback
  • Shared Pool relativamente corto
  • Redo log suficiente
  • Indices apropiados
  • Segmentos largos de temporal
  • Parallel Query en la medida de lo posible (si está disponible)

-- Estructura de la SGA:

Oracle utiliza la memoria para almacenar la siguiente información:
  • Código del programa
  • Información acerca de una sesión conectada, incluso si no se encuentra activa.
  • Información necesaria durante la ejecución del programa(por ejemplo, el estado de las consultas)
  • La información que comparten y con la cual se comunican los procesos Oracle (por ejemplo, la información de bloqueo)
  • La Caché de Datos
La memoria se puede estructurar en las siguientes partes:
  • Área Global del sistema (SGA), la cual se comparte entre todos los servidores y los procesos en segundo plano.
  • Áreas globales de programas (PGA), que es privada para cada servidor y proceso en segundo planos; a cada proceso se asigna un PGA.
  • Área de Ordenaciones (Sort Areas).
  • Memoria Virtual
  • Área de código de Software (SCA).

No hay comentarios:

Publicar un comentario