Re: FW: Select de 11 horas

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Jaime Casanova <jcasanov(at)systemguards(dot)com(dot)ec>
Cc: Edwin Quijada <listas_quijada(at)hotmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: FW: Select de 11 horas
Date: 2010-04-30 01:49:32
Message-ID: 20100430014932.GK3296@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Jaime Casanova escribió:

> Normalmente postgres hace un analisis exhaustivo de las tablas en el
> FROM para ver como deben juntarse (hacer el JOIN). Asi por ejemplo si
> tienes las tablas: ABC, postgres examinara los siguientes ordernes de
> JOIN
> [[AB]C] [[AC]B] [A[BC]] etc
>
> cuando hay demasidas tablas en el FROM (12 segun el predeterminado de
> geqo_threshold) postgres considera que es muy costoso hacer ese
> analisis exhaustivo y entonces simplemente escoje una plan al azar
> (probablemente sigue algunas reglas muy simplistas para escojer el
> plan, pero para todos los efectos es al azar) y no siempre el mismo
> plan...

No es totalmente al azar ... lo que usa se llama un algoritmo genético
(por eso el nombre, "GEnetic Query Optimizer"). La implementación no es
muy buena, pero los planes generados no son totalmente malos tampoco.
En casos donde el optimizador normal es demasiado costoso, GEQO puede
ser útil.

La idea básica de GEQO es generar varios posibles planes, ver qué partes
de ellos son más baratos, y luego recombinar los mejores para generar
otros planes, que vuelven a ser evaluados, y el ciclo comienza
nuevamente. Esto se hace varias veces, y en cada iteración los planes
generados van mejorando.

El problema es que el algoritmo que usa (vendedor viajero) no es la
solución más adecuado al problema en cuestión. Se ha discutido en
-hackers reemplazarlo por otro tipo de algoritmo genético, pero hasta el
momento nadie lo ha hecho.

--
Alvaro Herrera Valdivia, Chile ICBM: S 39º 48' 55.3", W 73º 15' 24.7"
"La vida es para el que se aventura"

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jose Parra 2010-04-30 10:47:36 Re: Bases de Datos + nas
Previous Message Jaime Casanova 2010-04-29 23:50:30 Re: FW: Select de 11 horas