Re: Consulta sobre funcion

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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