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
