Re: Proceso dormido

From: Horacio Miranda <hmiranda(at)gmail(dot)com>
To: Juan Carlos Avila Mendez <jcavila(at)tabicel(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Proceso dormido
Date: 2005-09-26 20:30:40
Message-ID: f2b9e749050926133045db55b7@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Concuerdo con alvaro, ahora creo que un buen libro de SQL es el LAN
time SQL, creo que tiene todo lo que se necesita saber para modelar y
hacer consultas más eficientes y recuerda algo "que funcione no
significa que este correcto o eficiente".

El 26/09/05, Alvaro Herrera<alvherre(at)alvh(dot)no-ip(dot)org> escribió:
> On Mon, Sep 26, 2005 at 12:31:51PM -0500, Juan Carlos Avila Mendez wrote:
> > Si estoy usando llaves foraneas, y el codigo que estoy ejecutando es el
> > siguiente:
> >
> > select * from c_articulos
> > while not eof(c_articulos)
> > select * from t_kardex where t_kardex.articulo_id =
> > c_articulos.articulo_id order by almacen_id, articulo_id, fecha, temporal_1,
> > consecutivo
> > while not eof(t_kardex)
> > ---------- (calculos locales)
> > ---------- (calculos locales)
> > t_kardex.cantidad_inicial = variable_local
> > update t_kardex
> > end while (t_kardex)
> > close t_kardex
> > end while (c_articulos)
>
> Ugh. Has pensado en leer algun libro sobre SQL?
>
> Esto podria quedar mucho mejor si hicieras
>
> select * from c_articulos, t_kardex where t_kardex.articulo_id =
> c_articulos.articulo_id
> while not eof()
> --- calculos locales
> update t_kardex set cantidad_inicial = variable_local
> end while
>
> Y aun mas, posiblemente se pueda hacer en un solo paso
>
> update t_kardex set cantidad_inicial = calculos
> from c_articulos
> where t_kardex.articulo_id = c_articulos.articulo_id
>
>
> No tengas miedo de hacer JOIN. En PostgreSQL el join se puede optimizar
> mucho. Estoy convencido que dejar que Postgres haga el trabajo sucio
> resultara mucho mas eficiente que hacerlo tu, en el codigo de la
> aplicacion.
>
>
> Con respecto a los bloqueos: por favor muestra aca lo que hay en
> pg_locks cuando ocurra uno de esos bloqueos, a ver si encontramos al
> culpable.
>
> --
> Alvaro Herrera http://www.amazon.com/gp/registry/DXLWNGRJD34
> Al principio era UNIX, y UNIX habló y dijo: "Hello world\n".
> No dijo "Hello New Jersey\n", ni "Hello USA\n".
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 5: ¿Has leído nuestro extenso FAQ?
>
> http://www.postgresql.org/files/documentation/faqs/FAQ.html
>

--
Saludos Horacio Miranda.
RedHat Certified Engineer.

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Horacio Miranda 2005-09-26 20:32:42 Re:
Previous Message Horacio Miranda 2005-09-26 20:25:38 Re: ecpg o libpq?