Re: TRIGGERS y VFP bajan la performance

From: "Dimas Ayala" <dimasayala(at)gmail(dot)com>
To: "Postgres Espaniol" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: TRIGGERS y VFP bajan la performance
Date: 2006-05-22 14:55:18
Message-ID: fd8818d50605220755y188f79d0v69d89c3072755f49@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Veras supongo que estas usando buffer por tabla. Y eso hace que todos
los triggers se ejecuten a la hora de actualizar para cada registro. Y
supongo que el fox no maneja una sola transaccion para todo el bloque
de registros.

Y abre y cierra una transaccion en postgres para cada registro.

Otra cosa no le veo sentido tener transacciones con trantos registros.

Deberias probar manejar eso datos sin VISTAS del lado DE VFP. Yo
manejo cierres mensuales con mas de 30,000 Registros tocando 2 o 3
tablas con triggers y todo. Y no tarda mas de 5-10 seg.

Usa los comandos sqlconnect, sqlexec, sqlcommit, sqlrollback.

Porque de esta manera tu manejas las transacciones.

Adios

On 5/20/06, Jaime Casanova <systemguards(at)gmail(dot)com> wrote:
> antes que nada dejame recordarte que siempre debes enviar una copia a
> la lista...
>
> On 5/20/06, Ccccccc IiiiiiiiiNnnnnnn <cinamuche(at)hotmail(dot)com> wrote:
> >
> >
> >
> > CREATE TRIGGER ti_insert_delete
> > BEFORE INSERT OR DELETE
> > ON dba.misobre
> > FOR EACH ROW
> > EXECUTE PROCEDURE dba.f_act_nro_sobres_orden();
> >
> > *--------------------
> >
> > CREATE OR REPLACE FUNCTION dba.f_act_nro_sobres_orden()
> > RETURNS "trigger" AS
> > $BODY$BEGIN
> > If TG_OP='INSERT' Then
> > Update dba.miheader set NROSOBRES = NROSOBRES + 1 Where orden =
> > new.numorden ;
> > Return NEW ;
> > Else
> > If TG_OP='DELETE' Then
> > Update dba.miheader set NROSOBRES = NROSOBRES - 1 Where orden =
> > old.numorden ;
> > Return OLD ;
> > End If ;
> > End if ;
> >
> > END ;$BODY$
> > LANGUAGE 'plpgsql' VOLATILE;
> >
> >
> >
> > Eso es todo....gracias x el tiempo de atencion
> >
>
> 1) tienes indices definidos sobre misobre(orden) y miheader(orden), verdad?
>
> 2) de donde es ese campo new.numorden? no esta en las tablas que
> mostrastes... no mostrar informacion exacta no es buena manera de
> lograr encontrar respuestas...
>
> 3) la funcion tal como la muestras solo funcina si previamente has
> ingresado los registros en miheader con nrosobres = 0
>
>
> hice pruebas hasta con 51000 registros y ciertamente se demora un
> poco, no me sorprende ese es el precio por usar triggers, no fue
> exagerado y ciertamente no se me colgo la maquina... yo creeria que el
> problema esta en VFP
>
> --
> Atentamente,
> Jaime Casanova
>
> "Programming today is a race between software engineers striving to
> build bigger and better idiot-proof programs and the universe trying
> to produce bigger and better idiots.
> So far, the universe is winning."
> Richard Cook
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 3: si publicas/lees desde Usenet, por favor envía "subscribe-nomail"
> a majordomo(at)postgresql(dot)org para que tus mensajes puedan llegar
> a los suscriptores de la lista
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Carlos Alberto Cianci 2006-05-22 15:02:35 Llamado a funcion con visual foxpro
Previous Message Linder Poclaba 2006-05-22 14:48:06 Re: Función para controla un campo de la última fila.