Re: Sobre VACUUM

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Aldo Alexander Leyva Alvarado <aleyva2004(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Sobre VACUUM
Date: 2005-12-23 20:40:44
Message-ID: c2d9e70e0512231240o225a517dv6245883024078585@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 12/23/05, Aldo Alexander Leyva Alvarado <aleyva2004(at)gmail(dot)com> wrote:
> Buenas Tardes Lista
> Una consulta, tengo BD POSTGRESQL 8.1 Sobre un Slackware 10.2, es una BD de
> pruebas, sobre ella hago diversas consultas, tenia un SQL que me tomaba
> aprox 3 segundos en obtener resultados, en general estaba en ese tiempo 3-4,
> luego hice un VACUUM a la toda la BD el mismo SQL se ejecutaba el 1-2
> segundos, el problema esta que si el SQL consulta registros mas antiguos el
> tiempo que toma es muy alto, demasiado, eso paso despues del VACUUM,
> anteriormente no tomaba ese tiempo. Por lo que percibi el VACUUM me
> favorecio enormemente sobre registros mas actuales, pero me perjudico de
> igual forma para registros mas viejos.
>
> SELECT ma.id_maquina, me.fecha, ma.flg_noduplicar, ma.flg_contador_soles,
> me.id_moneda, me.cant_creditos, me.denominacion, mo.simbolo AS moneda FROM
> maquinas ma, maquinas_ext me, monedas mo, (SELECT mu.id_maquina AS
> mu_id_maquina, mu.n_metros_ultimo AS mu_n_metros_ultimo FROM metros_ultimo
> mu WHERE mu.id_local=84 AND mu.fecha_conteo='2005-12-21' AND
> mu.n_metros_ultimo=(SELECT MAX(n_metros_ultimo) FROM metros_ultimo WHERE
> id_maquina=mu.id_maquina AND fecha_conteo='2005-12-21' AND id_local=84)) AS
> MAQUINAS_METROS WHERE MAQUINAS_METROS.mu_id_maquina=ma.id_maquina AND
> ma.id_maquina=me.id_maquina AND mo.id_monedas=me.id_moneda AND
> me.fecha=(SELECT
> MAX(fecha) FROM maquinas_ext WHERE id_maquina=ma.id_maquina AND
> fecha<='2005-12-21 23:59:59')
> Este SQL me toma Aprox, 107.595 ms (ni un segundo)
>
> SELECT ma.id_maquina, me.fecha, ma.flg_noduplicar, ma.flg_contador_soles,
> me.id_moneda, me.cant_creditos, me.denominacion, mo.simbolo AS moneda FROM
> maquinas ma, maquinas_ext me, monedas mo, (SELECT mu.id_maquina AS
> mu_id_maquina, mu.n_metros_ultimo AS mu_n_metros_ultimo FROM metros_ultimo
> mu WHERE mu.id_local=2 AND mu.fecha_conteo='2005-11-02' AND
> mu.n_metros_ultimo=(SELECT MAX(n_metros_ultimo) FROM metros_ultimo WHERE
> id_maquina=mu.id_maquina AND fecha_conteo='2005-11-02' AND id_local=2)) AS
> MAQUINAS_METROS WHERE MAQUINAS_METROS.mu_id_maquina=ma.id_maquina AND
> ma.id_maquina=me.id_maquina AND mo.id_monedas=me.id_moneda AND
> me.fecha=(SELECT
> MAX(fecha) FROM maquinas_ext WHERE id_maquina=ma.id_maquina AND
> fecha<='2005-11-02 23:59:59')
> Este SQL me toma Aprox, 7232.951 ms (mas de 7 segundos)
>
> Algun consejo, agradezcon de antemano por sus respuestas
>
> Saludos
>
>

muestra el explain analyze de la consulta, indices definidos sobre las tablas...

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

  • Sobre VACUUM at 2005-12-23 19:20:17 from Aldo Alexander Leyva Alvarado

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message cristian 2005-12-23 20:46:02 postgres JDBC
Previous Message Juanky Moral 2005-12-23 20:11:55 Re: Sobre VACUUM