¿Cuál es la diferencia entre vistas y vistas materializadas en Oracle?
345
¿Cuál es la diferencia entre vistas y vistas materializadas en Oracle?
Las vistas materializadas se basan en disco y se actualizan periódicamente según la definición de la consulta.
Las vistas son solo virtuales y ejecutan la definición de consulta cada vez que se accede a ellas.
Puntos de vista
Evalúan los datos en las tablas subyacentes a la definición de la vista en el momento en que se consulta la vista . Es una vista lógica de sus tablas, sin datos almacenados en ningún otro lugar.
La ventaja de una vista es que siempre le devolverá los datos más recientes . La desventaja de una vista es que su rendimiento depende de cuán buena sea la declaración de selección en la que se basa la vista. Si la instrucción select utilizada por la vista une muchas tablas, o usa combinaciones basadas en columnas no indexadas, la vista podría funcionar mal.
Vistas materializadas
Son similares a las vistas normales, ya que son una vista lógica de sus datos (basada en una instrucción select), sin embargo, el conjunto de resultados de la consulta subyacente se ha guardado en una tabla . La ventaja de esto es que cuando consulta una vista materializada, consulta una tabla , que también puede indexarse.
Además, dado que todas las uniones se han resuelto en el momento de actualización de la vista materializada, usted paga el precio de la unión una vez (o tan a menudo como actualiza su vista materializada), en lugar de cada vez que selecciona de la vista materializada. Además, con la reescritura de consultas habilitada, Oracle puede optimizar una consulta que selecciona desde el origen de su vista materializada de tal manera que en su lugar lee desde su vista materializada. En situaciones en las que crea vistas materializadas como formas de tablas agregadas o como copias de consultas ejecutadas con frecuencia, esto puede acelerar enormemente el tiempo de respuesta de su aplicación de usuario final. Sin embargo, la desventaja es que los datos que obtiene de la vista materializada están tan actualizados como la última vez que se actualizó la vista materializada .
Las vistas materializadas se pueden configurar para actualizarse manualmente, en un horario establecido o en función de la base de datos que detecta un cambio en los datos de una de las tablas subyacentes . Las vistas materializadas pueden actualizarse gradualmente combinándolas con registros de vistas materializadas, que actúan como fuentes de captura de datos de cambio en las tablas subyacentes.
Las vistas materializadas se utilizan con mayor frecuencia en aplicaciones de almacenamiento de datos / inteligencia de negocios donde consultar tablas de hechos grandes con miles de millones de filas daría como resultado tiempos de respuesta de consulta que resultaron en una aplicación inutilizable.
Las vistas materializadas también ayudan a garantizar un momento constante en el tiempo, similar al aislamiento de instantáneas .
fuente
Una vista usa una consulta para extraer datos de las tablas subyacentes.
Una vista materializada es una tabla en el disco que contiene el conjunto de resultados de una consulta.
Las vistas materializadas se utilizan principalmente para aumentar el rendimiento de la aplicación cuando no es factible o deseable usar una vista estándar con índices aplicados. Las vistas materializadas se pueden actualizar de forma regular, ya sea a través de activadores o mediante la
ON COMMIT REFRESH
opción. Esto requiere algunos permisos adicionales, pero no es nada complejo.ON COMMIT REFRESH
ha estado en su lugar desde al menos Oracle 10.fuente
Las vistas son esencialmente estructuras lógicas en forma de tabla pobladas sobre la marcha por una consulta determinada. Los resultados de una consulta de vista no se almacenan en ningún lugar del disco y la vista se vuelve a crear cada vez que se ejecuta la consulta. Las vistas materializadas son estructuras reales almacenadas en la base de datos y escritas en el disco. Se actualizan en función de los parámetros definidos cuando se crean.
fuente
Vista materializada : una tabla en un disco que contiene el conjunto de resultados de una consulta
Vista sin alimentación : una consulta que extrae datos de la tabla subyacente
fuente
Ver: Ver es solo una consulta con nombre. No almacena nada. Cuando hay una consulta a la vista, ejecuta la consulta de la definición de la vista. Los datos reales provienen de la tabla.
Vistas materializadas: almacena datos físicamente y se actualiza periódicamente. Al consultar MV, proporciona datos de MV.
fuente
Agregando a la respuesta bastante minuciosa de Mike McAllister ...
Las vistas materializadas solo se pueden configurar para que se actualicen automáticamente a través de la base de datos, detectando cambios cuando el compilador considera que la consulta de la vista es simple . Si se considera demasiado complejo, no podrá configurar lo que son esencialmente desencadenantes internos para rastrear los cambios en las tablas de origen para actualizar solo las filas cambiadas en la tabla mview.
Cuando crea una vista materializada, encontrará que Oracle crea tanto la vista mview como una tabla con el mismo nombre , lo que puede hacer que las cosas sean confusas.
fuente
Las vistas materializadas son la vista lógica de los datos controlados por la consulta de selección, pero el resultado de la consulta se almacenará en la tabla o disco, también la definición de la consulta también se almacenará en la base de datos.
El rendimiento de la vista materializada es mejor que la vista normal porque los datos de la vista materializada se almacenarán en la tabla y la tabla puede indexarse de manera más rápida para la unión. declaración de unión como en el caso de la vista.
Otra diferencia incluye en el caso de Vista, siempre obtenemos los datos más recientes, pero en el caso de la vista Materializada, necesitamos actualizar la vista para obtener los datos más recientes. En el caso de la vista Materializada, necesitamos un activador adicional o algún método automático para que podamos mantener actualizado el MV, esto no es necesario para las vistas en la base de datos.
fuente