From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Martin Marques <martin(at)bugs(dot)unl(dot)edu(dot)ar> |
Cc: | Miguel Julin de la Fuente <jmdelafuente(at)yahoo(dot)com(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Optimizar query |
Date: | 2006-07-24 21:15:53 |
Message-ID: | 20060724211552.GA10464@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Martin Marques escribió:
>
> On Mon, 24 Jul 2006 13:39:56 -0300 (ART), Miguel Juliÿffffe1n de la Fuente <jmdelafuente(at)yahoo(dot)com(dot)ar> wrote:
> > Muestro el EXPLAIN ANALYZE, desde ya muchas gracias.
> >
> > EXPLAIN ANALYZE
> > SELECT the_geom, nombre FROM
> > shortest_path('SELECT id, source, target, cost FROM calles_tmp_edges where
> > partido=45', 6001, 9960, false, false) a
> > inner join calles_tmp b
> > inner join calles_nombre n
> > on b.idcalle=n.idcalle
> > on a.edge_id=b.edge_id
> > where partido=45
> >
> > "Merge Join (cost=2061.75..2721.72 rows=43665 width=77) (actual
> > time=1950.551..1991.743 rows=49 loops=1)"
> > " Merge Cond: ("outer".edge_id = "inner".edge_id)"
> > " -> Sort (cost=62.33..64.83 rows=1000 width=4) (actual
> > time=473.271..473.360 rows=50 loops=1)"
> > " Sort Key: a.edge_id"
> > " -> Function Scan on shortest_path a (cost=0.00..12.50 rows=1000
> > width=4) (actual time=472.492..472.652 rows=50 loops=1)"
Pero si te fijas el peor problema esta aqui: el estimador cree que va a
encontrar mil tuplas y encuentra cincuenta. Esto puede ser un factor
que destruya la capacidad de optimizar mucho mas este join; lo cual es
bastante malo porque en este plan se encuentra bastante afuera del arbol
de ejecucion.
Lo que yo intentaria es lo que ya dije: tomar el resultado de
shortest_path y meterlo en una tabla temporal, y convertir el resto de
la consulta para que use esa tabla. Es posible que sea mejor usar un
nested loop en vez de un merge join aca (o quizas no).
--
Alvaro Herrera http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
From | Date | Subject | |
---|---|---|---|
Next Message | Noe Sereno | 2006-07-24 21:25:50 | data type earth |
Previous Message | Martin Marques | 2006-07-24 20:49:38 | Re: Optimizar query |