Jorge Tornero - Listas escribió:
> Estimados todos:
> 
> En una base de datos con la que trabajo he visto conveniente, aparentemente,
> pasar de emplear vistas a vistas materializadas, ya que los tiempos de
> consulta se me acortan drásticamente.
> 
> Tengo vistas que dependen de otras vistas, y entiendo que en este caso una
> consulta a la última vista en la "cadena de vistas" actualiza las
> precedentes. Ahora bien, en las vistas materializadas no lo tengo tan claro,
> y me pregunto si hay alguna manera "estándar" de trabajar con vistas
> materializadas:
> 
>  * Si el orden de actualizado de las mismas importa (presumo que sí)
>  * Si existen maneras de provocar esta actualización en cadena.
>  * Si existen precauciones a tomar al trabajar con VM

El orden sí importa: si tienes una vm A que depende de una vm B, y
refrescas A, ese refresco va a usar los datos de B que estén vigentes en
ese momento; si a continuación refrescas B, la que refrescate antes va a
seguir como estaba hasta que vuelvas a refrescarla.  Si necesitas datos
actualizados, debes refrescar B primero!

La otra alternativa es definir A de manera que no dependa de B, es
decir, "expandir" la consulta de B en la definición de A en vez de
confiar en la definición de B.  Esto puede significar que el refresco de
A sea mucho más lento, tanto como al menos una ejecución del refresco de
B, así que realmente no creo que tenga mucho beneficio hacerlo de esta
manera.  (La suposición es que el hecho de haber definido B basado en A
fue porque el refresco de B era más costoso).

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a