Uno de los mayores beneficios de usar una vista materializada es que Oracle se encarga de mantener los datos sincronizados. Si tiene una tabla agregada separada, usted es responsable de mantener los datos sincronizados. Eso generalmente requiere una cantidad razonable de código y una cantidad decente de pruebas y la mayoría de las organizaciones logran cometer errores que dejan huecos que hacen que la tabla agregada se desincronice. Esto es particularmente cierto cuando intenta implementar actualizaciones incrementales de la tabla agregada.
Otro beneficio importante es que, dependiendo de la configuración, Oracle puede usar la reescritura de consultas para usar vistas materializadas cuando los usuarios emiten consultas en las tablas base. Entonces, por ejemplo, si tiene un montón de informes existentes contra una tabla detallada que produce resultados agregados diarios, mensuales y anuales, puede crear una vista materializada en la tabla base que agregue los datos a nivel diario y el optimizador puede utilizar esa vista materializada para todas sus consultas existentes. Esto hace que sea mucho más fácil optimizar las cargas de trabajo de informes en un almacén de datos sin tratar de volver a escribir docenas de informes para usar su nueva tabla agregada o meterse con ellos DBMS_ADVANCED_REWRITE
para forzar sus propias reescrituras de las consultas.
ON DEMAND
es el comportamiento de actualización predeterminado. La vista materializada se debe crear conON COMMIT
. y mantener la vista materializada no es gratis. Sin embargo, probablemente sea más barato que un disparador.Un buen caso para usar MV es que algunas veces desea agregar datos y obtener esta información resumida de tablas grandes con frecuencia y rapidez. Sin vistas materializadas, debe desonormalizar algunas de sus tablas y mantener los agregados mediante código o escanear repetidamente grandes conjuntos de filas. De cualquier manera, no siempre es aceptable, especialmente con el tablero de instrumentos y aplicaciones similares en línea. Si mantiene los resultados en tablas separadas, complicará el código de su aplicación y, como dice @Justin Cave, estará a cargo de asegurarse de que los datos agregados manualmente estén sincronizados. con los datos de la tabla original.
fuente
No es una persona de Oracle, pero otro caso de uso sería soluciones de terceros. Por lo general, no le permiten realizar cambios en sus diseños, pero un MV sería "invisible" para su código, pero proporcionaría acceso a informes personalizados / extractos de datos.
No es gratis porque tendrá costos de almacenamiento y costos de tiempo de inserción / actualización potencialmente impactantes, pero eso puede compensarse con el tiempo dedicado a recuperar los datos materializados versus una "vista directa" o crear tablas reales y mantener el ETL circundante.
Finalmente, hacerlo puede anular su contrato de soporte con el proveedor, consulte a su abogado, bla, bla, bla
fuente
En lugar de ir directamente a Vistas materializadas, permítanme explicar Vistas .
Básicamente, las vistas existen lógicamente a diferencia de las tablas. Si queremos ocultar ciertas columnas a los usuarios, no podemos hacerlo usando tablas. Creando una vista podemos lograr la seguridad.
Caso de uso: si una vista está relacionada internamente con 10 tablas junto con group by y las funciones tienen millones de filas, se tarda mucho tiempo en ejecutarse.
Así que aquí vienen las vistas materializadas que nos ayudan a obtener datos más rápido. Las vistas materializadas existen físicamente en la base de datos. Cada vez que se actualiza la tabla base, se actualiza la vista Materializada.
fuente
Se puede configurar una vista materializada para actualizarse automáticamente de forma periódica. Una tabla puede necesitar código adicional para truncar / recargar datos.
ejemplo: La vista materializada que tiene datos de varias tablas se puede configurar para actualizarse automáticamente durante las horas no pico. Una tabla física necesitaría un código adicional para truncar / recargar datos.
La seguridad se puede controlar mejor en una vista materializada en lugar de una tabla.
fuente
Una vista materializada es un objeto de base de datos que contiene los resultados de una consulta. Son copias locales de datos ubicados de forma remota, o se utilizan para crear tablas de resumen basadas en agregaciones de datos de una tabla. http://www.oraappdata.com/2016/04/materialized-view.html
fuente