From: | Aldo Alexander Leyva Alvarado <aleyva2004(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Sobre VACUUM |
Date: | 2005-12-23 20:55:21 |
Message-ID: | 7a47bbbd0512231255s65f9c6d8j@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Una funcion que retorna un cursor?
Por que ese MAQUINAS_METROS retorna una tabla.
Que funcion de pondria para retornar esa tabla?
El día 23/12/05, Aldo Alexander Leyva Alvarado <aleyva2004(at)gmail(dot)com>
escribió:
>
> 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
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Juanky Moral | 2005-12-23 21:12:09 | Fwd: Sobre VACUUM |
Previous Message | cristian | 2005-12-23 20:46:02 | postgres JDBC |