Sebastian Machuca escribió:
> SET enable_indexscan TO OFF;
> SET
> 
> EXPLAIN ANALYZE SELECT  ani from trx_8 group by ani;
>                                                      QUERY PLAN
> --------------------------------------------------------------------------------------------------------------------
>  HashAggregate  (cost=8668.54..8668.56 rows=2 width=8) (actual
> time=1658.423..1658.427 rows=2 loops=1)
>    ->  Seq Scan on trx_8  (cost=0.00..7778.83 rows=355883 width=8) (actual
> time=0.011..728.418 rows=355883 loops=1)
>  Total runtime: 1658.680 ms
> (3 rows)
> 
> 
> No veo diferencia.

Hay mucha -- en este hace un seqscan + hashaggregate en vez de un
indexscan+unique que hacía en el plan que pusiste la primera vez.  En
total esto seguramente tiene menor costo porque hay menos I/O aleatorio.

Pero todo esto es en realidad una pérdida de tiempo, porque cuando
quieras ejecutarlo sobre la tabla de 3M registros en vez de esta tabla
de juguete, cualquiera de los dos planes va a ser igualmente inaceptable
por lento.  Creo que debes replantear el diseño si de verdad necesitas
la respuesta que entrega esta consulta; cosa que no me queda totalmente
clara que así sea.

-- 
Alvaro Herrera                               http://planet.postgresql.org/
"No me acuerdo, pero no es cierto.  No es cierto, y si fuera cierto,
 no me acuerdo."                 (Augusto Pinochet a una corte de justicia)
--
TIP 8: explain analyze es tu amigo

Responder a