Articulo de referencia

Vista materializada

En informática , una vista materializada es un objeto de base de datos que contiene los resultados de una consulta . Por ejemplo, puede ser una copia local de datos ubicados rem...

En informática , una vista materializada es un objeto de base de datos que contiene los resultados de una consulta . Por ejemplo, puede ser una copia local de datos ubicados remotamente, un subconjunto de las filas y/o columnas de una tabla o el resultado de una unión , o un resumen mediante una función de agregación .

El proceso de configurar una vista materializada se denomina a veces materialización . [ 1 ] Se trata de una forma de almacenar en caché los resultados de una consulta, similar a la memorización del valor de una función en lenguajes funcionales, y a veces se describe como una forma de precomputación . [ 2 ] [ 3 ] Al igual que con otras formas de precomputación, los usuarios de bases de datos suelen utilizar vistas materializadas por motivos de rendimiento, es decir, como una forma de optimización. [ 4 ]

Las vistas materializadas que almacenan datos basados ​​en tablas remotas también se conocían como instantáneas [ 5 ] ( terminología obsoleta de Oracle ).

En cualquier sistema de gestión de bases de datos que siga el modelo relacional , una vista es una tabla virtual que representa el resultado de una consulta a la base de datos . Cuando una consulta o actualización afecta a la tabla virtual de una vista ordinaria, el sistema de gestión de bases de datos (DBMS) las convierte en consultas o actualizaciones sobre las tablas base subyacentes. Una vista materializada adopta un enfoque diferente: el resultado de la consulta se almacena en caché como una tabla concreta ("materializada") (en lugar de una vista propiamente dicha) que puede actualizarse periódicamente a partir de las tablas base originales. Esto permite un acceso mucho más eficiente, a costa de un mayor espacio de almacenamiento y de que algunos datos puedan quedar desactualizados. Las vistas materializadas se utilizan especialmente en entornos de almacenamiento de datos , donde las consultas frecuentes a las tablas base reales pueden resultar costosas.

En una vista materializada, se pueden crear índices en cualquier columna. En cambio, en una vista normal, normalmente solo es posible aprovechar los índices en columnas que provienen directamente de (o tienen una asignación a) columnas indexadas en las tablas base; a menudo, esta funcionalidad ni siquiera está disponible.

Implementaciones

Oráculo

Las vistas materializadas fueron implementadas por primera vez por Oracle Database : la función de reescritura de consultas se agregó a partir de la versión 8i. [ 6 ]

Ejemplo de sintaxis para crear una vista materializada en Oracle:

CREATE MATERIALIZED VIEW MV_MY_VIEW REFRESH FAST START WITH SYSDATE NEXT SYSDATE + 1 AS SELECT * FROM < table_name > ;

PostgreSQL

En PostgreSQL , la versión 9.3 y posteriores admiten de forma nativa las vistas materializadas. [ 7 ] En la versión 9.3, una vista materializada no se actualiza automáticamente y se rellena solo en el momento de su creación (a menos que WITH NO DATAse utilice ). Posteriormente se puede actualizar manualmente utilizando REFRESH MATERIALIZED VIEW. [ 8 ] En la versión 9.4, la actualización puede ser concurrente con las consultas SELECT en la vista materializada si CONCURRENTLYse utiliza . [ 9 ]

Ejemplo de sintaxis para crear una vista materializada en PostgreSQL:

CREATE MATERIALIZED VIEW MV_MY_VIEW [ WITH ( storage_parameter [ = value ] [, ... ]) ] [ TABLESPACE tablespace_name ] AS SELECT * FROM < table_name > ;

Servidor SQL

Microsoft SQL Server se diferencia de otros sistemas de gestión de bases de datos relacionales (RDBMS) por la forma en que implementa las vistas materializadas mediante un concepto conocido como "vistas indexadas". La principal diferencia radica en que estas vistas no requieren actualización, ya que siempre están sincronizadas con los datos originales de las tablas que las componen. Para lograr esto, es necesario que las líneas de origen y destino sean deterministas en su mapeo, lo que limita los tipos de consultas posibles. Este mecanismo se implementó a partir de la versión 2000 de SQL Server.

Ejemplo de sintaxis para crear una vista materializada en SQL Server:

CREATE VIEW MV_MY_VIEW WITH SCHEMABINDING AS SELECT COL1 , SUM ( COL2 ) AS TOTAL FROM < table_name > GROUP BY COL1 ; GO CREATE UNIQUE CLUSTERED INDEX XV ON MV_MY_VIEW ( COL1 );

marcos de procesamiento de flujos

Apache Kafka (desde la v0.10.2), Apache Spark (desde la v2.0), Apache Flink, Kinetica DB , [ 10 ] Materialize, [ 11 ] RisingWave, [ 12 ] y Epsio [ 13 ] admiten vistas materializadas en flujos de datos.

Otros

Las vistas materializadas también son compatibles con Sybase SQL Anywhere . [ 14 ] En IBM Db2 , se denominan "tablas de consulta materializadas". [ 15 ] ClickHouse admite vistas materializadas que se actualizan automáticamente en las fusiones. [ 16 ] MySQL no admite vistas materializadas de forma nativa, pero se pueden implementar soluciones alternativas mediante el uso de disparadores o procedimientos almacenados [ 17 ] o mediante el uso de la aplicación de código abierto Flexviews . [ 18 ] Las vistas materializadas se pueden implementar en Amazon DynamoDB utilizando eventos de modificación de datos capturados por DynamoDB Streams. Google anunció el 8 de abril de 2020 [ 19 ] la disponibilidad de vistas materializadas para BigQuery [ 20 ] como una versión beta.

Referencias

  1. Comparar: CJ Date (28 de agosto de 2006). The Relational Database Dictionary: A Comprehensive Glossary of Relational Terms and Concepts, with Illustrative Examples . O'Reilly Media, Inc. p.  59. ISBN 978-1-4493-9115-7. Recuperado el 26 de octubre de 2016 . materialización[:] Una técnica algo simple para implementar operaciones en vistas según la cual (a) la expresión relacional que define la vista se evalúa en el momento en que se invoca la operación, (b) la vista se materializa de ese modo, y (c) la operación en cuestión se ejecuta luego contra la relación así materializada.
  2. ^ Karen Morton; Kerry Osborne; Robyn Arenas; Riyaj Shamsudeen; Jared Still (28 de octubre de 2013). Pro Oracle SQL . Presione. pag. 48.ISBN  978-1-4302-6220-6.
  3. Marie-Aude Aufaure; Esteban Zimányi (16 de enero de 2012). Business Intelligence: First European Summer School, EBISS 2011, París, Francia, 3-8 de julio de 2011, Tutorial Lectures . Springer Science & Business Media. p. 43. ISBN  978-3-642-27357-5.
  4. Michael L. Gonzales (25 de febrero de 2003). IBM Data Warehousing: with IBM Business Intelligence Tools . John Wiley & Sons. pág. 214. ISBN  978-0-471-45736-7.
  5. CJ Date (28 de agosto de 2006). The Relational Database Dictionary: A Comprehensive Glossary of Relational Terms and Concepts, with Illustrative Examples . O'Reilly Media, Inc. p. 59. ISBN  978-1-4493-9115-7. Recuperado el 26 de octubre de 2016. Vista materializada[:] Término obsoleto para una instantánea. [...] El problema es [...] que (como indica la definición) las instantáneas han llegado a conocerse, al menos en algunos círculos, no como instantáneas en absoluto, sino como vistas materializadas. Pero las instantáneas no son vistas; las vistas son virtuales y las instantáneas no, y "vista materializada" es una contradicción en los términos (al menos en lo que respecta al modelo). Peor aún, el término " vista" sin cualificaciones a menudo se toma para referirse específicamente a una vista materializada, y por lo tanto corremos el peligro de que ya no tengamos un buen término para una vista en el sentido original.
  6. Oracle8i Tuning Release 8.1.5 . Ecst.csuchico.edu. Consultado el 9 de febrero de 2012.
  7. "Vistas materializadas - Wiki de PostgreSQL" . wiki.postgresql.org . Consultado el 29 de noviembre de 2022 .
  8. "CREATE MATERIALIZED VIEW" . Documentación de PostgreSQL . 10 de noviembre de 2022. Consultado el 29 de noviembre de 2022 .
  9. "REFRESH MATERIALIZED VIEW" . Documentación de PostgreSQL . 13 de febrero de 2020. Consultado el 29 de noviembre de 2022 .
  10. "Vistas materializadas" . Consultado el 28 de diciembre de 2022 .
  11. "Charla sobre la base de datos de CMU: Materialización del edificio" . Consultado el 30 de marzo de 2022 .
  12. "¿Es RisingWave el próximo Apache Flink?" . www.singularity-data.com . 28 de abril de 2022 . Consultado el 30 de junio de 2022 .
  13. "Cómo construimos un motor SQL de transmisión" . Consultado el 21 de mayo de 2025 .
  14. Vistas materializadas – Sybase SQL Anywhere Archivado el 14/12/2009 en Wayback Machine . Ianywhere.com. Consultado el 09/02/2012.
  15. Mejora del rendimiento con vistas indexadas de SQL Server 2005. Microsoft.com. Consultado el 9 de febrero de 2012.
  16. Documentación de ClickHouse MaterializedView . Clickhouse.yandex. Consultado el 5 de septiembre de 2019.
  17. Implementación de vistas materializadas en MySQL . Shinguz.ch (6 de noviembre de 2006). Consultado el 9 de febrero de 2012.
  18. Flexviews para MySQL: vistas materializadas actualizables incrementalmente con MySQL . Flexviews.sourceforge.net. Consultado el 9 de febrero de 2012.
  19. "Notas de la versión" . Google.com. 8 de abril de 2020. Consultado el 21 de julio de 2021 .
  20. Documentación de Vistas Materializadas de Google BigQuery Google.com Consultado el 20 de mayo de 2020.
  • Conceptos y arquitectura de la vista materializada – Oracle
  • Fragmentos de SQL: Tutoriales sobre las características de SQL – Vistas materializadas – Oracle
  • Referencia de la API de administración de replicación de Oracle9i, versión 2 (9.2)
  • Vistas materializadas en Oracle 11.2
  • Tablas de consulta materializadas en Db2
  • Creación de vistas materializadas en MySQL
  • Optimización de datos con vistas materializadas: una historia de comercio electrónico