Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group