From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Mario Gonzalez <gonzalemario(at)gmail(dot)com> |
Cc: | Daniel Carrero <dxduke(at)gmail(dot)com>, Luis Rodrigo Gallardo Cruz <rodrigo(at)nul-unu(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Consulta sobre funcion |
Date: | 2006-06-20 14:18:30 |
Message-ID: | 20060620141830.GM26882@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Mario Gonzalez escribió:
> On 20/06/06, Alvaro Herrera <alvherre(at)commandprompt(dot)com> wrote:
> >Daniel Carrero escribió:
> >
> >
> >En Postgres no existen "procedimientos", solo funciones. No puedes
> >hacer un COMMIT ni ROLLBACK dentro de una funcion (tampoco BEGIN). Si
> >quieres abortar una funcion, haz RAISE EXCEPTION y listo, la funcion
> >completa esta abortada y la transaccion tambien.
> >
> >Ahora, puedes capturar excepciones si quieres, o puedes usar SAVEPOINT
> >antes de entrar a una funcion, pero ese ya es otro tema.
>
> Y usar un SAVEPOINT ayuda un poco en el rendimiento? Creo que lei
> una vez que capturar las excepciones puede darle a la funcion un
> cierto delay en la ejecucion. Ademas, suena logico.
Usar un SAVEPOINT tiene un costo mayor que no usarlo. Usar un EXCEPTION
en plpgsql es exactamente el mismo costo, puesto que internamente ambos
usan la misma infraestructura (sub-transacciones). Pero usar un
EXCEPTION o un SAVEPOINT y pagar ese costo, es ciertamente muchisimo mas
barato que abortar la transaccion completa y tener que empezar todo de
nuevo.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Mario Gonzalez | 2006-06-20 14:29:48 | Re: Consulta sobre funcion |
Previous Message | Mario Gonzalez | 2006-06-20 13:44:08 | Re: Consulta sobre funcion |