2010-11-18 26 views
30

Me queda claro por qué es preferible una vista materializada antes que consultar una tabla base. Lo que no está tan claro es la ventaja sobre simplemente crear otra tabla con los mismos datos que el MV. ¿La única ventaja del MV es solo la facilidad de creación/mantenimiento?Vista Materializada vs. Tablas: ¿Cuáles son las ventajas?

¿No es un MV equivalente a una tabla con esquema coincidente y un INSERT INTO utilizando la instrucción MVs SELECT?

Significado, se puede crear una MV de la siguiente manera

CREATE MATERIALIZED VIEW ... AS 
SELECT * FROM FOO; 

Y usted puede crear una tabla equivalente:

CREATE TABLE bar (....); 
INSERT INTO bar 
SELECT * FROM FOO; 

no quiere decir que la facilidad de creación/mantenimiento no es suficiente de una ventaja, solo quiero asegurarme de que no me falta nada.

+3

'CREATE VIEW' no * crea una vista Materializada. –

+0

Bueno, para ser precisos, esto no crea una Vista Materializada, pero en SQL Server y PostgreSQL tampoco impide una Vista Materializada. – seth

Respuesta

0

La diferencia entre la tabla y MV es con la tabla, puede realizar operaciones DML que otros usuarios verán, mientras que los cambios que haga en MV no estarán disponibles para otros hasta que actualice su servidor de base de datos.

MV tiene otra ventaja cuando construye MV basado en tablas múltiples que usan consultas complejas, los usuarios cuando usan MV el rendimiento aumenta drásticamente.

+0

El primer punto no suena como una ventaja. También parece que se copia desde aquí sin ninguna referencia http://itknowledgeexchange.techtarget.com/itanswers/difference-between-materialized-views-and-tables/ – codeObserver

9

Son básicamente equivalentes, pero el MV tiene varias opciones para refrescar automáticamente los datos, lo que no solo mejora la facilidad de mantenimiento sino también, en algunos casos, la eficiencia, ya que puede rastrear los cambios por fila.

6

Las vistas materializadas se pueden actualizar: son instantáneas de los datos tomados a intervalos regulares.

Su segunda afirmación es solo una oferta única: los datos se insertan en la tabla en ese momento. Los cambios adicionales a los datos originales no se reflejan en la tabla.

4

La gran ventaja de una Vista Materializada es la recuperación extremadamente rápida de los datos agregados, ya que está precalculada y almacenada, a expensas de insertar/actualizar/eliminar. La base de datos mantendrá la Vista Materializada sincronizada con los datos reales, sin necesidad de reinventar la rueda, deje que la base de datos lo haga por usted.

18

Dynamic query rewriting. Las vistas materializadas definen no solo las relaciones, sino que también le permiten calcular previamente uniones costosas y agregaciones. El optimizador es lo suficientemente inteligente como para usar el MV para obtener datos relevantes incluso si el MV no se usa explícitamente en la consulta (dada la configuración de DB, etc.).

Su pregunta fue etiquetada como Oracle, pero MSSQL también hace trucos similares.

1

Además de las otras respuestas (porque no las he visto), diría que aunque ambas ocupan espacio, la vista materializada está lógicamente normalizada, mientras que la tabla adicional está lógicamente desnormalizada. Si esto es algo que no es una excepción temporal, deberá recordar actualizar la segunda tabla cada vez que actualice la tabla base.

4
  1. La vista materializada se mantendrá sincronizado con las relaciones base de los que depende.

  2. Si la vista materializada es actualizable, cuando modifica la vista materializada , también modificará la relación base de la que depende .

1

1) la aceleración de las operaciones de escritura: Dado que los índices pueden ser creados en las vistas materializadas, la lectura de ellos es muy rápido. Tenga en cuenta que si crea un índice en una tabla que incluye muchas escrituras, la sobrecarga de mantenimiento del índice tiende a ralentizar el proceso de escritura. Para evitar esto, puede crear una vista de materialización y crear índices sobre ellos. Estos índices se pueden mantener en segundo plano y no afectan negativamente a las operaciones de escritura de tablas.

2) Operaciones de lectura de exceso de velocidad: Uniones complejas; los pivotes que tardan años en ejecutarse pueden acelerarse al crear índices en las vistas materializadas. Esto se vuelve muy útil en la mayoría de los escenarios de informes.

0

En additition de las ventajas ya mencionadas: las

  • consulta dinámica volver a escribir (en pocas palabras, el optimizador DB sabe cómo se crea el MV, por lo que puede volver a utilizarlo para optimizar otras consultas),
  • opcional ,, refrescar posiblemente incrementales automáticas,

me gustaría mencionar:

  • algunas vistas materializadas pueden escribirse, lo que actualiza la tabla de origen (por ejemplo, se pueden escribir uniones con claves primarias, en el opuesto si la vista materializada es el resultado de un grupo por el cual no se puede escribir)
  • el servidor de bases de datos retiene la consulta que creó los datos y puede volver a ejecutarlos. Si crea una tabla, necesita una herramienta externa (posiblemente solo una secuencia de comandos personalizada) para volver a ejecutar la consulta siempre que el usuario necesite o solicite una actualización. (Trabajo para una empresa que desarrolla una herramienta que hace eso y mucho más).
Cuestiones relacionadas