tabla - ¿Cuál es la diferencia entre las vistas y las vistas materializadas en Oracle?
vistas indexadas oracle (8)
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 últimos datos . La desventaja de una vista es que su rendimiento depende de la calidad de la declaración de selección en la que se basa la vista. Si la declaración de selección utilizada por la vista une muchas tablas o utiliza combinaciones basadas en columnas no indexadas, la vista podría tener un bajo rendimiento.
Vistas materializadas
Son similares a las vistas normales, ya que son una vista lógica de sus datos (según una declaración de selección), 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, está consultando una tabla , que también puede estar indexada.
Además, dado que todas las combinaciones se resolvieron en el momento de actualización de la vista materializada, usted paga el precio de la combinación una vez (o con la frecuencia con la que actualiza su vista materializada), en lugar de cada vez que selecciona desde la vista materializada. Además, con la reescritura de consultas habilitada, Oracle puede optimizar una consulta que seleccione desde el origen de su vista materializada de tal manera que en su lugar se lea 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, el inconveniente 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 pueden configurarse para actualizarse manualmente, en un horario establecido, o según la base de datos que detecte un cambio en los datos de una de las tablas subyacentes . Las vistas materializadas se pueden actualizar incrementalmente combinándolas con los registros de vista materializada, que actúan como fuentes de captura de datos de cambio en las tablas subyacentes.
Las vistas materializadas se usan con mayor frecuencia en las aplicaciones de almacenamiento de datos / inteligencia empresarial, donde consultar tablas de hechos grandes con miles de millones de filas resultaría en 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 .
¿Cuál es la diferencia entre las vistas y las vistas materializadas en Oracle?
Agregando a la respuesta bastante completa de Mike McAllister ...
Las vistas materializadas solo se pueden configurar para que se actualicen automáticamente a través de la base de datos y detecten 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 activadores internos para rastrear los cambios en las tablas de origen para actualizar solo las filas modificadas en la tabla mview.
Cuando creas una vista materializada, encontrarás que Oracle crea tanto mview como una tabla con el mismo nombre , lo que puede hacer que las cosas se confundan.
Las vistas materializadas están basadas 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.
Las vistas son esencialmente estructuras similares a tablas lógicas que se completan al vuelo mediante 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.
Una vista no es más que una consulta SQL, toma el resultado de una consulta y la hace aparecer como una tabla virtual, que no ocupa ningún espacio de almacenamiento ni contiene datos.
Pero las vistas materializadas son objetos de esquema, que almacenan los resultados de una consulta en un objeto de esquema separado (es decir, ocupan espacio de almacenamiento y contienen datos). Esto indica que la vista materializada está devolviendo una copia físicamente separada de los datos de la tabla
Una vista utiliza 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 usan 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 desencadenantes o utilizando la opción ON COMMIT REFRESH
. Esto requiere algunos permisos adicionales, pero no es nada complejo. ON COMMIT REFRESH
ha estado en su lugar desde al menos Oracle 10.
Vista materializada : una tabla en un disco que contiene el conjunto de resultados de una consulta
Vista sin contenido : una consulta que extrae datos de la tabla subyacente
Vista: la vista es solo una consulta con nombre. No almacena nada. Cuando hay una consulta en la vista, ejecuta la consulta de la definición de vista. Los datos reales provienen de la tabla.
Vistas materializadas: almacena los datos físicamente y se actualiza periódicamente. Al consultar MV, da datos de MV.