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
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 |