Re: Duda desempeño Vistas

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Raúl Andrés Duque <ra_duque(at)yahoo(dot)com(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Duda desempeño Vistas
Date: 2007-05-21 22:44:16
Message-ID: 20070521224416.GA6111@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Raúl Andrés Duque escribió:

> Si creo una vista que realiza MUCHOS JOINs entre tablas y realizo un
> WHERE no en la definción de la vista sino en su invocación, el
> desempeño es igual a "COPIAR" la sentencia original (de la vista) y
> adicionar el WHERE??

Si, es igual. Hay algunos casos en los cuales no se puede "mover" la
clausula del WHERE hacia "adentro" de la vista, pero en general sí se
hace.

> Mi duda surge de que un amigo me comentó que cuando creo una vista y
> le aplico un WHERE (en su invocación) se crea primero "TODA LA VISTA"
> y luego se filtra ... esto haría el uso de las vistas no recomendable.
> Este comentario me lo dijo un "GURU" de MSSQL ... sucede los mismo
> cuando lo hago con POSTGRESQL?

No. Hasta donde se, el optimizador de SQL Server es algo mas torpe que
el de Postgres. En Postgres, la consulta se "resuelve" completamente
(es decir se expanden las vistas, etc) y _despues_ se optimiza el
resultado completo.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2007-05-21 22:49:10 Re: ayuda
Previous Message Moises Alberto Lindo Gutarra 2007-05-21 22:31:49 Re: Problemas con Postgresql y FreeBSD