Cuestiones sobre vistas materializadas de Oracle
Cuestiones sobre vistas materializadas de Oracle Carlos Fri, 01/22/2010 - 11:59Abro este tema a propósito del artículo Vistas materializadas de Oracle para optimizar un Datawarehouse para que comentemos aquí cualquier cuestión relacionada con la creación, funcionamiento, consejos, errores, etc. de Vistas Materializadas de Oracle.
Enlazo para empezar la consulta que ha hecho Elena en el tema Cuestiones sobre los dblinks de Oracle sobre la creación de vistas materializadas a partir de tablas remotas (enlazadas por database links).
Tengo una duda, estoy
Submitted by OMARE (not verified) on Mon, 04/19/2010 - 18:52
Tengo una duda, estoy haciendo un replica entre dos bases de datos Oracle 10g mediante vistas materializadas.
Todo bien hasta ahi, el problema es que se estan agregando columnas a la tabla principal pero estos cambios no los puedo reflejar en la tabla de replica. Mi duda es ¿Como modifico el Query que consulta la tabla principal para agregarle dentro de esa sentencia las nuevas columnas?
saludos
Buena pregunta. En teoría la
Submitted by Carlos on Thu, 04/22/2010 - 11:11
In reply to Tengo una duda, estoy by OMARE (not verified)
Buena pregunta. En teoría la única manera de agregar columnas a una vista materializada es borrar la vista y volver a recrearla completamente con la nueva definición.
El problema es que no existe ningún comando tipo ALTER TABLE que se pueda aplicar a las vistas materializadas para agregar columnas, o simplemente para cambiar la definición de una columna.
Para vistas con pocos datos no hay ningún problema, la recreación puede ser rápida. El problema viene cuando hablamos de vistas materializadas grandes, de un Data Warehouse por ejemplo, donde la recreación puede ser muy costosa.
Pero siempre hay una solución para todo. En el Blog de Arup Nanda he encontrado un excelente post que explica cómo ingeniárselas para alterar la definición de una vista materializada sin recrearla completamente.
Se trata de utilizar la opción ON PREBUILT TABLE al crear la vista para que la vista se apoye internamente en una tabla. Cuando se ha de realizar alguna modificación se borra la vista, pero la tabla interna permanece. Se realiza un ALTER TABLE sobre esta tabla, y después se vuelve a crear la vista materializada a partir de la tabla. Como la tabla ya existe la creación de la vista es muy rápida.
Extraigo a continuación las sentencias que permitirían hacerlo, consultar el detalle en el post original:
Y ahora me dirás que tu ya tienes creada tu vista materializada y esta solución llega un poco tarde. Es cierto, pero para eso Arup Nanda también propone una solución para hacer una reconstrucción de la vista materializada con el mínimo impacto en el rendimiento de nuestra base de datos:
Bueno, espero que esto te sirva, ya nos explicarás si lo has podido aplicar.
Pues yo estaba convencido de
Submitted by Carlos on Thu, 05/03/2012 - 00:27
Pues yo estaba convencido de que la versión XE no permitía utilizar vistas materializadas, incluso consultando la comparativa de Oracle de opciones de las diferentes 'Editions' da la sensación de que en esta versión no se incluyan, pero si las estás usando está claro que sí.
Consultando la información sobre licenciamiento de Oracle Database Express Edition, parece que lo que no está incluído es el Query Rewrite con vistas materializadas (Materialized View Query Rewrite), pero sí una replicación básica con vistas materializadas de sólo lectura y actualización, que supongo que es lo que tú estás utilizando:
Basic Replication
Yes (read-only and updateable materialized view site only)
En cualquier caso espero que nos puedas explicar si sacas algo en claro con los logs, poder utilizar un método sencillo de replicación con BBDD Oracle XE seguro que va a interesar a mucha gente.
queria preguntarle si no
Submitted by yanina (not verified) on Sat, 11/16/2013 - 02:29
Como crear una vista que le
Submitted by Anonimo (not verified) on Sat, 12/05/2015 - 22:12
Hola, tengo una
Submitted by klin (not verified) on Wed, 02/03/2016 - 03:27
Hola, tengo una pregunta...
Necesito modificar la defnicion del select de la vista, se puede usar un ALTER MATERIALIZED VIEW en este caso?
y su se puede me dicen como es la sentencia porque no me funciona, lo escribi asi:
ALTER MATERIALIZED VIEW mi_vista
as SELECT.... ;
muchas gracias
CREATE MATERIALIZED VIEW
Submitted by JOSE CUENTAS (not verified) on Mon, 09/26/2016 - 07:04
CREATE MATERIALIZED VIEW SALUD_REPO REFRESH START WITH SYSDATE + 10/(24 * 60 * 54) NEXT SYSDATE + 10/(24 * 60 * 54) AS select * from eps@BDSALUD;
Si se puede lo que no se debe usar es, la intruccion FAST. ya que no está soportada por la ficha tecnica.
saludos