Em Qua, 2010-08-18 às 09:01 -0300, Sebastian SWC escreveu:
> On Wed, Aug 18, 2010 at 8:54 AM, Antonio Prado
> <[email protected]> wrote:
> <corte>
> > Qual seria o mais indicado: GROUP BY ou DISTINCT ON ?
> >
> 
> o que diz o explain?

Apresento abaixo o resultado com explain. O que devo observar neles?

Obs: A select no explain é diferente da que postei, mas com o mesmo
objetivo.


Utilizando distinct:
--------------------------------------
"Unique  (cost=1273.83..1277.54 rows=742 width=33)"
"  ->  Sort  (cost=1273.83..1275.68 rows=742 width=33)"
"        Sort Key: compras_materia.materia_prima_id"
"        ->  Hash Join  (cost=1069.98..1238.45 rows=742 width=33)"
"              Hash Cond: (compras_materia.materia_prima_id =
materia_prima.materia_prima_id)"
"              ->  Hash Join  (cost=1010.31..1163.94 rows=742 width=4)"
"                    Hash Cond: (compras_materia.compras_id =
compras.compras_id)"
"                    ->  Seq Scan on compras_materia  (cost=0.00..120.71
rows=5571 width=8)"
"                    ->  Hash  (cost=1007.81..1007.81 rows=200 width=4)"
"                          ->  HashAggregate  (cost=1005.81..1007.81
rows=200 width=4)"
"                                ->  Sort  (cost=1000.95..1001.76
rows=324 width=4)"
"                                      Sort Key: compras.compras_id"
"                                      ->  Seq Scan on compras
(cost=0.00..987.44 rows=324 width=4)"
"                                            Filter: ((cfop_id !~~
'9%'::text) AND (emissao >= '2010-06-01'::date) AND (emissao <=
'2010-06-30'::date))"
"              ->  Hash  (cost=37.63..37.63 rows=1763 width=33)"
"                    ->  Seq Scan on materia_prima  (cost=0.00..37.63
rows=1763 width=33)"



Utilizando group:
---------------------------------------
"Sort  (cost=1286.81..1288.67 rows=742 width=33)"
"  Sort Key: (('M'::text || (compras_materia.materia_prima_id)::text))"
"  ->  HashAggregate  (cost=1238.45..1251.44 rows=742 width=33)"
"        ->  Hash Join  (cost=1069.98..1234.74 rows=742 width=33)"
"              Hash Cond: (compras_materia.materia_prima_id =
materia_prima.materia_prima_id)"
"              ->  Hash Join  (cost=1010.31..1163.94 rows=742 width=4)"
"                    Hash Cond: (compras_materia.compras_id =
compras.compras_id)"
"                    ->  Seq Scan on compras_materia  (cost=0.00..120.71
rows=5571 width=8)"
"                    ->  Hash  (cost=1007.81..1007.81 rows=200 width=4)"
"                          ->  HashAggregate  (cost=1005.81..1007.81
rows=200 width=4)"
"                                ->  Sort  (cost=1000.95..1001.76
rows=324 width=4)"
"                                      Sort Key: compras.compras_id"
"                                      ->  Seq Scan on compras
(cost=0.00..987.44 rows=324 width=4)"
"                                            Filter: ((cfop_id !~~
'9%'::text) AND (emissao >= '2010-06-01'::date) AND (emissao <=
'2010-06-30'::date))"
"              ->  Hash  (cost=37.63..37.63 rows=1763 width=33)"
"                    ->  Seq Scan on materia_prima  (cost=0.00..37.63
rows=1763 width=33)"



_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a