From: | Silvio Quadri <silvioq(at)gmail(dot)com> |
---|---|
To: | Guillermo Villanueva <guillermovil(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: mejorar performance de select |
Date: | 2011-05-23 15:05:05 |
Message-ID: | BANLkTimCUXL1cm68fTfhA4S5bYHyEno8GA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
El día 23 de mayo de 2011 11:46, Guillermo Villanueva
<guillermovil(at)gmail(dot)com> escribió:
> buenos días,
> Tengo una tabla de datos históricos con un millon de registros
> aproximadamente.
> En la tabla tengo un campo periodo, el cual es un timestamp con datos como:
> '2011-01-01', '2011-02-01', '2011-03-01', por cada uno de esos periodos
> tengo aproximadamente 100mil registros, no quiero crear una tabla adicional
> de periodos.
> Tengo creado un índice de la tabla por periodos.
> Si realizo la consulta:
> select periodo from nacer.historicotemp group by periodo
> o
> select distinct periodo from nacer.historicotemp
> demora casi un minuto y el explain menciona que hace lo siguiente:
> "HashAggregate (cost=310333.40..310333.56 rows=16 width=8) (actual
> time=17045.806..17045.812 rows=17 loops=1)"
> " -> Seq Scan on historicotemp (cost=0.00..301156.72 rows=3670672
> width=8) (actual time=34.278..11863.851 rows=3925154 loops=1)"
> "Total runtime: 17045.998 ms"
> Es posible mejorar esta consulta? Hay forma de decirle que utilice el índice
> por periodo?
Hola ...
No tiene sentido utilizar el índice por período ya que el motor
siempre tiene que recorrer completa para ver todos los períodos. En
este caso, si el tamaño de registro es grande, sería más rápido leer
nada más que el índice (sin leer los demás datos), pero esa
funcionalidad no la tiene Postgres.
¿Porqué no utilizar select max(periodo), min(periodo) ... ? en este
caso sí tomaría el índice y luego completás con un ciclo sencillo del
lado del cliente.
Saludos!
Silvio
> Desde ya muchas gracias
> Saludos
>
> ~~~~~~~~~~~~~~~~
> Guillermo Villanueva
>
--
Silvio Quadri
From | Date | Subject | |
---|---|---|---|
Next Message | Guillermo Villanueva | 2011-05-23 15:13:47 | Re: mejorar performance de select |
Previous Message | Álvaro Hernández Tortosa | 2011-05-23 14:52:12 | Re: mejorar performance de select |