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.
--
TIP 5: ¿Has leído nuestro extenso FAQ?
         http://www.postgresql.org/docs/faqs.FAQ.html

Responder a