Hola a menos que me equivoque no vi en los archivos que revise de la
lista que trataran este tema, Tengo la siguiente consulta
select nombre, tipo, max(idtbl) , min(idtbl)
from tabla_grande where fechacreacion between '2011-07-01 05:00:00'
and '2011-07-21 04:59:00' group by nombre, tipo order by nombre
El problema es que tarda demasiado en traerme datos, y pues solo
quiero el max y el min, le hice un explain y me arrojo lo siguiente.
"Sort (cost=432277.66..432377.66 rows=40000 width=18)"
" Sort Key: public.tabla_grande.nombre"
" -> HashAggregate (cost=428620.12..429220.12 rows=40000 width=18)"
" -> Append (cost=0.00..410897.41 rows=1772271 width=18)"
" -> Index Scan using ind_fecha on tabla_grande
(cost=0.00..410897.41 rows=1772271 width=18)"
" Index Cond: ((fechacreacion >= '2011-07-01
05:00:00'::timestamp without time zone) AND (fechacreacion <=
'2011-07-12 04:59:00'::timestamp without time zone))"
Para arreglarlo estuve buscando en la red y encontre que podria usar
indices tipo GIST para consultas con fechas pero no encontre ningun
ejemplo.
Mas datos sobre mi hardware y software:
2 QUAD XEON
6 GB RAM
4 x 150GB 10KRPM SATA en RAID 10
Freebsd 64 bits
Postgres 8.4.7 tuneado para este server con ayuda de la lista (
gracias nuevamente ayudo mucho al desempeƱo general)
tabla_grande mas de 50 millones de registros y cada dia crece 1/2 millon mas
Otra de las opciones es agregar particionamiento a esa tabla... ya lo
hice esta semana y pues espero probar para checar resultados.
Saludos y de antemano gracias por su ayuda.
Roberto Campos
-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda