From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | "Mauro A(dot) Morales M(dot)" <mmorales(at)opencorp(dot)cl> |
Cc: | Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar>, Marcos Saldivar <baron(dot)rojo(dot)cuerdas(dot)de(dot)acero(at)gmail(dot)com>, Postgresql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Plan de ejecución de una consulta con OR |
Date: | 2008-07-15 04:34:32 |
Message-ID: | 20080715043432.GS4050@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Mauro A. Morales M. escribió:
> El lun, 14-07-2008 a las 10:51 -0400, Alvaro Herrera escribió:
> > Supongo que es posible que por una cosa de rendimiento la condición que
> > involucra la constante sea ejecutada antes que la otra, y que el motor
> > se tome la libertad de eliminar el subselect. Por otro lado supongo que
> > si el subselect incluyera cosas como una funcion volátil, no podría hacerlo.
>
> Pero acaso el explain no entrega pistas acerca de como resuelve la
> consulta ?.
Claro, pero un explain que te entrega en un momento dado no asegura que
va a usar el mismo plan todo el tiempo.
> Si no recuerdo mal, las SQL se leen de abajo hacia arriba y de izquierda
> a derecha.
No necesariamente ... por ej. el FROM de un SELECT "se lee" (es decir,
el motor lo procesa) antes que el WHERE. Y la lista de resultados (lo
que va justo antes del FROM) se lee despues del FROM. Y si tienes un
subselect en alguna parte, puede que se lea "de adentro hacia afuera" (o
quizas no, por ej. si es un subquery correlacionado)
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Gabriel Messner | 2008-07-15 10:25:14 | LATIN1 versus UTF8 |
Previous Message | Mauro A. Morales M. | 2008-07-15 03:40:32 | Re: Plan de ejecución de una consulta con OR |