[ 2015-08-29 ]

Optimizando Oracle BI Analytics con la opción Oracle 12c: In-Memory Database (Parte I)

Introducción:
Mediante la incorporación de la funcionalidad “In-Memory columnar store”, la recientemente lanzada opción de “In-Memory database”, todo ello apunta a mejorar significativamente el rendimiento de consultas en aplicaciones OLAP. Este artículo explorará cómo aprovechar esta funcionalidad de “In-Memory” en un ambiente de Oracle OBIEE “Analytics”. Utilizaremos como caso de estudio, un proyecto de análisis financiero para poder profundizar sobre las mejores prácticas, lecciones aprendidas, estudios de rendimiento de la aplicación con “In-Memory database” en aplicaciones analíticas de negocio.
Oracle 12c In-Memory Option
“Oracle 12c Database” introduce la opción de “In-Memory database”. Esta opción apunta a acelerar las operaciones de “analytics” y también darle velocidad al procesamiento de carga de trabajo mixta OLAP/OLTP. Esta característica tiene también la particularidad de ser transparente para las aplicaciones.
La opción “In-Memory” de “Oracle Database 12c” introduce un nuevo formato dual de arquitectura que consiste en:
  • El tradicional formato de Oracle basado en fila. Este formato fila de datos es almacenado tanto en disco (storage) como en memoria (buffer cache en la SGA), es bueno para operaciones OLTP (insert/update/delete).
  • El nuevo formato de columna o columnar que incorpora la opción In-Memory introducida con “Oracle 12.1.0.2 In-Memory column store” es un nuevo componente de la SGA y esta nueva estructura coexiste con el “data buffer cache” (formato fila). Esta funcionalidad se diseñó para poder darle velocidad a aplicaciones OLAP y también soportar carga de trabajo mixtas “OLTP/OLAP”.
Se puede ver el formato de la Arquitectura dual ilustrado en la Figura 1:

Figura 1: Arquitectura de Memoria en Formato Dual
Echemos un vistazo entonces a “In-Memory Column Store”. Como hemos mencionado, este nuevo componente se encuentra alojado en la SGA en un area denominada “In-Memory Area”. Para activar esta opción, es necesario establecer el parámetro de inicialización: “inmemory_size”. Dado que este parámetro no es dinámico, primero debe ser configurado en el spfile mediante la sentencia:
SQL> alter system set inmemory_size=100G scope=spfile;

Y luego debemos reiniciar la instancia de base de datos para que el cambio tenga efecto.
Al reiniciar la instancia, durante el proceso de “startup” se mostrará el tamaño asignado al área deIN-Memory como podemos observarlo aquí:

No hay comentarios:

Publicar un comentario