sql >> Base de Datos >  >> RDS >> Oracle

¿Qué son las vistas materializadas?

Claro.

Una vista normal es una consulta que define una tabla virtual:en realidad no tiene los datos en la tabla, los crea sobre la marcha mediante la ejecución.

Una vista materializada es una vista en la que se ejecuta la consulta y los datos se guardan en una tabla real.

Los datos en la vista materializada se actualizan cuando se lo indique.

Un par de casos de uso:

  • Tenemos varias instancias de Oracle en las que queremos tener los datos maestros en una instancia y una copia razonablemente actualizada de los datos en las otras instancias. No queremos asumir que los enlaces de base de datos entre ellos siempre estarán activos y operativos. Así que configuramos vistas materializadas en las otras instancias, con consultas como select a,b,c from [email protected] y diles que se refresquen todos los días.

  • Las vistas materializadas también son útiles en la reescritura de consultas. Supongamos que tiene una tabla de hechos en un almacén de datos con todos los libros prestados de una biblioteca, con fechas y prestatarios. Y ese personal quiere saber regularmente cuántas veces se ha prestado un libro. A continuación, cree una vista materializada como select book_id, book_name, count(*) as borrowings from book_trans group by book_id, book_name , configúrelo para la frecuencia de actualización que desee, generalmente la frecuencia de actualización para el propio almacén. Ahora, si alguien ejecuta una consulta como esa para un libro en particular contra book_trans tabla, la capacidad de reescritura de consultas en Oracle será lo suficientemente inteligente como para mirar la vista materializada en lugar de recorrer los millones de filas en book_trans .

Por lo general, crea vistas materializadas por razones de rendimiento y estabilidad:redes inestables o consultas largas fuera del horario laboral.