Hola estimados,
mis disculpas por no contestar con anterioridad, estuve un poco enfermo y hoy recién he regresado a mis labores. Antes de cargar la base de datos con los miles de registros había desactivado autovacum y no le había hecho un analyze a la tabla tal como sugirió Jaime. Hoy se ha hecho el ANALYZE y la verdad es que los resultados han mejorado muchísimo, por lo cual ya hemos quedado satisfechos con los resultados de las consultas.

Muchas gracias a todos.



El 26/04/2013 0:23, Alvaro Herrera escribió:
Jaime Casanova escribió:
2013/4/25 Alvaro Herrera <[email protected]>:
Rodrigo Ruiz escribió:
El 25/04/2013 16:03, Alvaro Herrera escribió:
Hola Alvaro,
el explain analyze de la consulta arrojó lo siguiente:

"Index Scan using persona_fecha_nacimiento_idx on persona
(cost=0.01..9.68 rows=1 width=835) (actual time=0.097..102908.235
rows=699498 loops=1)"
"  Index Cond: ((fecha_nacimiento >= (('now'::text)::date - '35
years'::interval)) AND (fecha_nacimiento <= (('now'::text)::date -
'25 years'::interval)))"
"Total runtime: 103004.026 ms"
Es curioso que use un indexscan en este caso; probablemente debería
estar usando un seqscan, o cuando mucho un bitmap scan.  ¿No tendrás
enable_seqscan=off?  ¿O quizás tienes otros parámetros del optimizador
puestos en valores inusuales?
Lo que realmente me llama la atención es que los registros estimados
dice 1 que es completamente distinto a los 699498 que finalmente
retorno.
Ah!  No lo había visto.  Quizás por eso usa un indexscan ...

Inicialmente te diré que ejecutes ANALYZE sobre esa tabla,
+1



--
Rodrigo Ruiz Fuentes


-
Enviado a la lista de correo pgsql-es-ayuda ([email protected])
Para cambiar tu suscripci�n:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a