Re: consultas por fechas

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."

In response to

Responses

Browse pgsql-es-ayuda by date

  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