From: | marcelo Cortez <jmdc_marcelo(at)yahoo(dot)com(dot)ar> |
---|---|
To: | Alvaro Herrera <alvherre(at)commandprompt(dot)com>, Luis Salas <lsalas(at)safp(dot)cl> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: columnas con dos datos posibles (M,F) |
Date: | 2008-01-10 15:53:12 |
Message-ID: | 985974.37442.qm@web32111.mail.mud.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Alvaro , gente
--- Alvaro Herrera <alvherre(at)commandprompt(dot)com>
escribió:
> Luis Salas escribió:
>
> > Cuando se hace un "group by" de algunas columnas
> considerando una
> > condición en la que se seleccione algún valor de
> otra columna con dos
> > datos posibles (ej: columna
> sexo:masculino/femenino), el tiempo de
> > respuesta excede los 15 segundos cuando la tabla
> contiene más de 6
> > millones de registros, como es mi caso.
> >
> > Para la siguiente consulta:
> > SELECT edad, region, count(*) AS cantidad FROM
> afiliados WHERE sexo='M'
> > GROUP BY edad, region ORDER BY edad, region;
>
> En una consulta como esta, siempre vas a tener que
> recorrer una mitad de
> la tabla, así que el plan de no usar ningún índice
> es lo más
> conveniente. Usar un índice, en el modelo de
> Postgres, es más lento y
> causaría mayor I/O.
>
Una pregunta, un indice con clausula where
create index i_ejemplo on afiliados( sexo,region)
where sexo = 'M' ;
no ayudaria?
si la respuesta es no, porque?
saludos
MDC
> Si este tipo de consulta es algo que necesitas con
> mucha frecuencia,
> creo que tendrías que enfrentarlo de un modo
> distinto -- desnormalizando
> un poco el modelo. Prueba buscando "materialized
> view jonathan gardner"
> en Google. La idea sería tener una vista
> materializada por edades y
> regiones, lo cual te debería dar una tabla de aprox.
> 15 (regiones) * 40
> (edades posibles) = 600 registros.
>
> Hacer eso y mantener los contadores actualizados
> causaría más lentitud
> en cada INSERT y UPDATE en la tabla de afiliados,
> pero dado que las
> edades de cada persona cambian lentamente (más o
> menos una vez al año) y
> la gente no se mueve mucho de región, no creo que
> vaya a ser un problema
> en tu caso.
>
> --
> Alvaro Herrera
> http://www.CommandPrompt.com/
> PostgreSQL Replication, Consulting, Custom
> Development, 24x7 support
> --
> TIP 7: no olvides aumentar la configuración del
> "free space map"
>
Yahoo! Encuentros.
Ahora encontrar pareja es mucho más fácil, probá el nuevo Yahoo! Encuentros http://yahoo.cupidovirtual.com/servlet/NewRegistration
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2008-01-10 16:14:28 | Re: columnas con dos datos posibles (M,F) |
Previous Message | Johnny Verdugo | 2008-01-10 14:55:11 | duda instalando Postgis en Centos |