Re: columnas con dos datos posibles (M,F)

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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