From: | Javier Chávez B(dot) <jchavezb(at)gmail(dot)com> |
---|---|
To: | Daniel Hernández <daniel(at)scio(dot)cl> |
Cc: | Lista PostgreSql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: consultas por fechas |
Date: | 2009-08-17 17:07:18 |
Message-ID: | ded64bba0908171007s42354405m5a13d4f9a1525ea2@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
2009/8/17 Daniel Hernández <daniel(at)scio(dot)cl>
> > puedes crear la fecha al momento de la consulta:
> >
> > select * from pagos where (agno_pago||'-'||mes_pago||'-01')::date >=
> > '2007-07-01';
>
> Pero entonces dejarás de usar posibles índices en los campos de mes año. Me
> parece mejor la solución de:
>
> SELECT * FROM pagos
> WHERE (agno_pago = 2007 AND mes >= 7)
> OR (agno_pago > 2007);
>
> Lo de las fechas tiene muchas soluciones según gustos. A algunos le gusta
> descomponerlas en campos integer y manipularlos por separado con un índice
> por
> cada campo. A otros, les gusta usar campos date y si requieren valores
> agrupados por mes, entonces crean un índice funcional para el mes, cosa de
> no
> perder eficiencia en las consultas (a mi la solución de los índices
> funcionales me agrada). ¿Conocen algún estudio que discuta este tema?
> Generalmente las tablas que usan fecha registran hechos, por lo que suelen
> crecer bastante y requieren ser indexadas astutamente. Por allí se llega al
> tema de los modelos de datos para consultas como los estrella o los copos
> de
> nieve, donde a veces usan una tabla de fechas. También se llega al asunto
> de
> si disponer usar tablas con orientación a filas o a columnas... aunque ahí
> se
> escapa un poco de Postgres, porque hasta donde se, no soporta orientación
> de
> columnas.
>
> Saludos,
>
> Yo uso solo estrella puedes hacer todo y es mas eficiente en termines de
performance, ya que son datos tratados y desnormalizados , lo que
generalmente se hace es crear una "dimension" con por ejemplo un siglo de
fechas y luego cuando llega un registro obtienes el id de la fecha y eso se
guarda en la tabla de "Facts" (sera actos en español supongo, no se como es
la bibliografia en español) .
En un principio parece un poco loco tener una tabla con las fechas asi pero
cuando tienes que comenzar a hacer consultas en diferentes dimensiones
temporales se soluciona bastante la vida (consultas por trimestre - semestre
- dias - meses ...etc etc etc).
Slds
Jc
--
Cumprimentos
jchavez
linux User #397972 on http://counter.li.org/
Charles de Gaulle<http://www.brainyquote.com/quotes/authors/c/charles_de_gaulle.html>
- "The better I get to know men, the more I find myself loving dogs."
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2009-08-17 17:11:35 | Re: consultas por fechas |
Previous Message | Javier Chávez B. | 2009-08-17 16:53:07 | Re: consultas por fechas |