Re: Plan de ejecución de una consulta con OR

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.

In response to

Browse pgsql-es-ayuda by date

  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