From: | Rodrigo Ruiz <rruizf(at)gmail(dot)com> |
---|---|
To: | Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Mejorar rendimiento en consulta usando fechas |
Date: | 2013-04-25 18:33:19 |
Message-ID: | 517976EF.60909@gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola,
quisiera pedir ayuda para mejorar el rendimiento de las consultas select
que se hacen a una tabla que contiene cerca de 13 millones de registros,
básicamente no se actualiza ni se insertan nuevos registros, sólo se
hacen consultas.
He creado algunos indices en campos para mejorar el rendimiento y anda
bastante bien, sin embargo, cuando se hace una consulta que involucra
fechas, tarda demasiado.
Existe un campo llamado fecha_nacimiento y una consulta de ejemplo sería
traer todos las personas que tengan entre 25 y 35 años a la fecha.
La consulta sería algo como:
select * from persona where fecha_nacimiento between (current_date -
interval '35 years') and (current_date - interval '25 years');
La consulta, en un primer intento, tarda cerca de 6 minutos y medio, el
equipo donde se está probando es uno que tenemos para desarrollo, no es
un servidor dedicado y tiene un par de discos en raid 1; 4 GB de RAM y
no recuerdo que procesador pero debe ser algo como core2 o similar de X
GHz, lo cual no es mucho pero creo que podría obtener un mejor rendimiento.
* Quizás la consulta no está bien planteada y pueda mejorar comparando
los campos de otra forma?
* El campo fecha_nacimiento está indexado (clustered) ordenado
descendentemente.
Muchas gracias!
--
Rodrigo Ruiz Fuentes
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
Para cambiar tu suscripcin:
http://www.postgresql.org/mailpref/pgsql-es-ayuda
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2013-04-25 19:03:43 | Re: Mejorar rendimiento en consulta usando fechas |
Previous Message | Arcel Labrada Batista | 2013-04-23 19:35:38 | Re: convertir timestamp a integer |