Tuesday, September 23, 2008

Re: [pgsql-es-ayuda] duda/problema con query y funcion

2008/9/23 Miguel Beltran R. <yourpadre@gmail.com>:
> No se si se pueda pero haz un explian analyze a ambas
Ok, aca esta.

>
> Y nos mandas el resultado
> por cierto que version de postgres usas?
>
Estoy ocupando la 8.2 de ubuntu 7.10 (postgresql-8.2 8.2.6-0ubuntu0).


Los explain analyze
Para la query:

QUERY PLAN
--------------------------------------------------------------------------------------------------------------------------------------------------------------
Group (cost=8.25..8.47 rows=29 width=23) (actual time=2.135..2.353
rows=12 loops=1)
-> Sort (cost=8.25..8.33 rows=29 width=23) (actual
time=2.126..2.203 rows=34 loops=1)
Sort Key: articulo.idarticulo, public.costo.costoultimo
-> Hash Join (cost=5.62..7.55 rows=29 width=23) (actual
time=1.322..1.677 rows=34 loops=1)
Hash Cond: ((public.costo.idarticulo)::text =
(articulo.idarticulo)::text)
-> Seq Scan on costo (cost=0.00..1.52 rows=29
width=14) (actual time=0.036..0.184 rows=34 loops=1)
Filter: ((fecha <= '2008-08-25'::date) AND (((NOT
flag) AND (idproveedor IS NULL)) OR flag OR (NOT flag)))
-> Hash (cost=5.45..5.45 rows=14 width=23) (actual
time=1.243..1.243 rows=14 loops=1)
-> Hash Left Join (cost=4.08..5.45 rows=14
width=23) (actual time=1.059..1.183 rows=14 loops=1)
Hash Cond: ((articulo.idarticulo)::text =
(public.costo.idarticulo)::text)
-> Seq Scan on articulo (cost=0.00..1.14
rows=14 width=15) (actual time=0.009..0.046 rows=14 loops=1)
-> Hash (cost=3.93..3.93 rows=12
width=22) (actual time=1.014..1.014 rows=12 loops=1)
-> Hash Join (cost=2.24..3.93
rows=12 width=22) (actual time=0.720..0.961 rows=12 loops=1)
Hash Cond:
(public.costo.idcosto = fechacosto.idcosto)
-> Seq Scan on costo
(cost=0.00..1.42 rows=42 width=26) (actual time=0.008..0.114 rows=42
loops=1)
-> Hash (cost=2.09..2.09
rows=12 width=4) (actual time=0.634..0.634 rows=12 loops=1)
-> Subquery Scan
fechacosto (cost=1.79..2.09 rows=12 width=4) (actual
time=0.492..0.590 rows=12 loops=1)
-> HashAggregate
(cost=1.79..1.97 rows=12 width=22) (actual time=0.485..0.524 rows=12
loops=1)
-> Seq Scan
on costo (cost=0.00..1.52 rows=35 width=22) (actual time=0.018..0.136
rows=34 loops=1)
Filter:
(fecha <= '2008-08-25'::date)
Total runtime: 2.755 ms
(21 filas)


y para la funcion:
QUERY PLAN
---------------------------------------------------------------------------------------------------------------
Function Scan on buscandoError (cost=0.00..0.01 rows=1 width=4)
(actual time=110.452..110.455 rows=1 loops=1)
Total runtime: 110.526 ms
(2 filas)

Las diferencias de "runtime" de seguro que se debe al raise notice... o no?

Muchas gracias por la ayuda.
Saludos!
Roberto
--
visita mi weblog!
http://trasto.hopto.org
Softwarelibre@diinf
http://softwarelibre.diinf.usach.cl
--
TIP 4: No hagas 'kill -9' a postmaster

No comments: