Vista materialisada
En un sistema de gestió de base de senyes que seguixca el model relacional, una vista és una taula virtual, que representa el resultat d'una consulta. Sempre que es consulta o s'actualisa una vista normal, el SGBD convertix estes operacions en consultes o actualisacions de les taules usades per a definir la vista. Una vista materialisada utilisa una aproximació diferent: el resultat de la consulta s'almagasena en una taula real, que serà actualisada de forma periòdica a partir de les taules originals. Açò proporciona un accés molt més eficient, a costa d'un increment en el tamany de la base de senyes i a una possible falta de sincronia, és dir, que les senyes de la vista poden estar potencialment desfasados sobre les senyes reals. És una solució molt utilisada en entorns d'almagasenes de senyes (datawarehousing), a on l'accés freqüent a les taules bàsiques resulta massa costós.
Ademés, ya que la vista s'almagasena com una taula real, es pot fer en ella lo mateix que en qualsevol atra taula, sent especialment important la capacitat de crear índexs en qualsevol columna, la qual cosa pot aumentar significativament la velocitat de les consultes. En una vista normal, lo habitual és que solament es permeta utilisar índexs sobre aquelles columnes que ya tenen definit un índex en la taula original; a voltes ni tan sols s'oferix eixa possibilitat.
Les vistes materialisades varen ser implementades per primera volta en el gestor de base de senyes Oracle (afegitó en la versió 8i).[1] També estan soportades en Sybase SQL Anywhere.[2] En IBM DB2, se'ls crida "materialized query tables". Microsoft SQL Server té una característica similar anomenada "vistes indexades".[3] MySQL no té soport natiu per a vistes materialisades, no obstant es poden implementar solucions aproximades usant triggers o procediments almagasenats.[4] També és possible implementar vistes materialisades en PostgreSQL[5]
Implementació en PostgreSQL
[editar | editar còdic]Les vistes materialisades es varen afegir en PostgreSQL a partir de la versió 9.3. Una vista materialisada no s'actualisa automàticament, sino que solament s'ompli en el moment de la creació. Es pot actualisar més vesprada de forma manual. En la versió 9.4, l'actualisació pot coincidir en les seleccions en la vista materialisada si s'usa l'opció CONCURRENTLY.
Eixemple d'una vista materialisada en PostgreSQL
CREATE MATERIALIZED VIEW MV_MY_VIEW
[ WITH ( storage_parameter [= value] [, ... ] ) ]
[ TABLESPACE tablespace_name ]
AS SELECT * FROM <table_name>;
Referències
[editar | editar còdic]- ↑ Oracle8i Tuning Release 8.1.5 [1] archivat en Wayback Machine.. Ecst.csuchico.edu.
- ↑ Materialized Views – Sybase SQL Anywhere
- Archivat el 14 de decembre de 2009 archivat en Wayback Machine.. Ianywhere.com.
- ↑ Improving Performance with SQL Server 2005 Indexed Views. Microsoft.com.
- ↑ Implementing materialized views in MySQL. Shinguz.ch (2006-11-06).
- ↑ PostgreSQL: Materialized Views [2] archivat en Wayback Machine.. Wiki.postgresql.org (2010-05-07).
- Este artícul conté una traducció derivada de «Vista materializada» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.