Hola,

Estoy empezando a crear funciones en plpgsql, y la verdad tengo bastantes dudas


Tengo que recorrerme varias veces el resultado de un mismo query y la verdad no se cual es la mejor, la tabla va ha ser grande y sera una tabla muy concurrida, y necesito que la funcion sea muy rápida

Este es el query

        SELECT ubicacion,articulo,lote,sum(entradas-salidas)
                FROM    movi
                WHERE   movi.id_contenedor      =       a407.i_contenedor
                GROUP   BY ubidacion,articulo,lote
                HAVING  sum(entradas - salidas) <> 0
                ORDER   BY      ubidacion,articulo,lote

el resultado estará mas o menos entre 0 y 3 filas

Mis dudas :

- ¿la segunda vez  que intente hacer un loop, esta en cache y no cuesta ?
- ¿Mejor lo vuelco a un record.array y recorro el array las veces que necesite? ¿como lo vuelco?

- Declaro un cursor y solo lo habro una vez (con el OPEN) y luego lo recorro con fecth las veces que necesite?

- y la ultima que se me ocurre y mas limpia, si utilizo sentecias select sobre esta que actuaria como una subconsulta que si esta en cache iria rapido (esto ultimo es algo que creo yo)

Algo asi ....

SELECT   a. ...
from
        (SELECT ubicacion,articulo,lote,sum(entradas-salidas)
                FROM    movi
                WHERE   movi.id_contenedor      =       a407.i_contenedor
                GROUP   BY ubidacion,articulo,lote
                HAVING  sum(entradas - salidas) <> 0
                ORDER   BY      ubidacion,articulo,lote)) a
group by a. ....


Gracias ..

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

Responder a