• No se han encontrado resultados

Grandes volúmenes de datos Vistas materializadas. bases de datos

N/A
N/A
Protected

Academic year: 2021

Share "Grandes volúmenes de datos Vistas materializadas. bases de datos"

Copied!
14
0
0

Texto completo

(1)

Grandes volúmenes de datos

(2)

Vistas materializadas en Oracle

Es una vista pero no sólo se almacena su definición,

sino también los datos que devuelve en una tabla

que el sistema crea de forma automática para ello.

Estos datos deben ser refrescados.

Se le pueden definir índices.

Se le puede especificar parámetros de

almacenamiento como a una tabla (internamente es

una tabla)

(3)

Vistas materializadas en Oracle

Ventajas

◦ Su uso es transparente para las aplicaciones y los usuarios

◦ Evita realizar cálculos que requieren gran tiempo de ejecución

en el momento de ejecución de la consulta

 Agregaciones (sum, avg, …)

 Joins complejos entre tablas

◦ Existe la posibilidad de que el optimizador de consultas

reconozca automáticamente cuando existe una vista

materializada que puede ser utilizada para resolver una consunta

 Re-escribe la consulta (QUERY REWRITE)

 Compara los planes de ejecución

(4)

Vistas materializadas en Oracle

Desventajas

Ocupan espacio

Tabla interna

Necesitan de operaciones de refresco

Actualización manual

Actualización temporal (refrescos programados)

Actualización instantánea (cada vez que se

(5)

Vistas materializadas en Oracle

Sintaxis

reducida

CREATE MATERIALIZED VIEW [esquema.]vista [BUILD { IMMEDIATE | DEFERRED }

[ REFRESH { FAST | COMPLETE | FORCE } { ON { DEMAND | COMMIT }

| { START WITH | NEXT } date ]

[ { DISABLE | ENABLE } QUERY REWRITE ] AS subquery ;

DROP MATERIALIZED VIEW [esquema.]tabla [PRESERVE TABLE];

Sintaxis

completa:

(6)

Vistas materializadas en Oracle

BUILD

Immediate

Opción por defecto

Refresca los datos inmediatamente con la

ejecución de la sentencia de creación

Deferred

La vista se crea vacía

Los datos aparecerán en la siguiente operación de

(7)

Vistas materializadas en Oracle

REFRESH

◦ complete | fast | force

Complete. Se ejecuta cada vez la query de la vista. Se borran

todos los datos y se vuelven a calcular.

Fast. Método de refresco incremental. Los cambios en las

tablas que afectan a la vista se almacenan en un log asociado a la tabla

 El log de las tablas maestras de la vista han de crearse

previo a la vista (create materialized view log on nombre_tabla ….)

 No permitido con BUILD DEFERRED

 Muchas restricciones sobre la sentencia de la vista.  Para saber si una vista materializada puede utilizar el

método FAST, el package DBMS_MVIEW proporciona el procedure EXPLAIN_MVIEW

(8)

Vistas materializadas en Oracle

REFRESH

Demand | commit | Start with

 Demand. Valor por defecto. Bajo demanda.(manual) Una

opción de refresco es utilizar uno de los procedimientos de refresco (DBMS_MVIEW)

 Commit. Refresco cada vez que una operación modifica

alguna de las tablas maestras (sólo para tipo FAST)

 Start with .. next. Especifica una expresión temporal para

el primer refresco

 Next. Especifica una expresión temporal para calcular el

intervalo entre refrescos

 ORACLE automáticamente genera un JOB para estos

(9)

Vistas materializadas en Oracle

Ejemplo

CREATE MATERIALIZED VIEW mv_pedidos BUILD DEFERRED

REFRESH COMPLETE ON DEMAND AS

SELECT fech_pedi, esta_pedi, count(*) AS nume_pedi FROM pedidos

GROUP BY fech_pedi, esta_pedi; se poblará en

la siguiente operación de refresco

Refresco completo y bajo demanda llamando a procedimiento

DBMS_MVIEW

DBMS_MVIEW.REFRESH(

LIST => ‘MV_PEDIDOS'

,ATOMIC_REFRESH => FALSE); Podemos especificar una

lista de vistas. Forzamos un truncate en vez de un delete. Es más rápido aunque la vista Tiene otros parámetros.

(10)

Vistas materializadas en Oracle

Ejemplo

CREATE MATERIALIZED VIEW mv_pedidos BUILD IMMEDIATE

REFRESH complete NEXT sysdate + 7 AS SELECT * FROM pedidos;

Refresco completo, automático cada siete días Comenzando 7 después de la creación de la vista

CREATE MATERIALIZED VIEW mv_pedidos TABLESPACE OTRAS_APP_DAT

STORAGE (INITIAL 50K NEXT 50K) BUILD DEFERRED

REFRESH COMPLETE

START WITH ROUND(SYSDATE) + 13/24 NEXT ROUND(SYSDATE+1)+ 6/24 AS AS SELECT * FROM pedidos;

Podemos especificar parámetros de almacenamiento

Se creará inicialmente vacia, el primer referesco será hoy a las 13 y todos los días a las 6:00 completo

(11)

Vistas materializadas en Oracle

Ejemplo

Ejemplo completo

create materialized view log on pedidos with primary key, rowid, sequence(fech_pedi, impo_pedi)

including new values;

create materialized view mv_pedidos refresh fast on demand

as

select to_char(fech_pedi, 'YYYY'), sum(impo_pedi) from pedidos

group by to_char(fech_pedi, 'YYYY')

Creamos el log de la tabla maestra. En este caso tendrá la PK y el ROWID de la tabla origen y los campos “mapeados” de la vista destino donde se irán guardando los cambios pendientes

Cuando se produzca el refresco SOLO se refrescaran los datos modificados

El refresco se hará cuando nosotros lo provoquemos, si queremos que sea inmediato (al modificar datos fuente) debería ser ON COMMIT

(12)

Vistas materializadas en Oracle

QUERY REWRITE

El optimizador puede decidir, por razones de

eficiencia, usar una vista materializada cuando

se encuentra con una query en la que podría ser

usada

ENABLE: Indicamos que la vista es candidata

DISBLE (por defecto) : Indicamos que la vista NO

es candidata

(13)

Vistas materializadas en Oracle

QUERY REWRITE (ejemplo)

El optimizador decide

usar la visa materializada

(14)

 Vistas del diccionario con información sobre Vistas

materializadas

user_mviews

user_MVIEW_REFRESH_TIMES

user_mview_logs

Etc (consultar manual)

Vistas materializadas en Oracle

Referencias

Documento similar

En el caso de realizar una análisis estructural dinámico lineal de un edificio en particular, se necesita disponer de la información correspondiente a las dimensiones en planta y

[r]

SECUNDARIA COMPRENDE LOS

[r]

Asegurar una calidad mínima en los datos es una de las tareas más difíciles de conseguir para los organismos públicos cuyo objetivo es publicar datos lo más rápidamente posible

 Clave ajena: sus valores deben coincidir con los de la clave primaria de otra relación  representa una relación entre datos a modo de referencia. 

En último lugar, no debemos olvidar los sistemas de programas de origen español: el SIGNA, una base de datos para tratamiento y recuperación de datos espaciales, diseñada en el IGN,