Skip site navigation (1) Skip section navigation (2)

Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] RE: [pgsql?==?ISO-8859-1?Q?-es-ayuda] Ayuda Manejo de transacciones en una función.

From: William Diaz Pabón <widipa(at)gmail(dot)com>
To: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] RE: [pgsql?==?ISO-8859-1?Q?-es-ayuda] Ayuda Manejo de transacciones en una función.
Date: 2012-09-20 15:00:10
Message-ID: CAGrLqMZ17r2B2Gm-6Em9QZidjR4gyZf7_fvLe1+EWXmZMxrrrA@mail.gmail.com (view raw or flat)
Thread:
Lists: ecpugpgsql-es-ayuda
Buenos días a todos.

Retomando los aportes de todos ya saber que es mala idea hacer commit por
registro.

Yo tengo una duda, y si tengo por ejemplo un millon de registros que
retorna el cursor, al cual se le hace un procesamiento y el último registro
del cursor genera una exception se pierde todo el procesamiento anterior? o
lo que propone alvaro es lo que se debe hacer para esos casos?.

Como hacer para procesar un pool de registros y al terminar el cursor y se
hace commit, guardar los registros procesados exitosamente y los que no que
guarde un error pero que siempre termine de recorrer todo el cursor.

Gracias por sus aportes.

El 20 de septiembre de 2012 09:50, Edwin Quijada <listas_quijada(at)hotmail(dot)com
> escribió:

>  EL problema es que la base de datos maneja SQL no procesamiento. Esa
> forma de hacer las cosas es mala idea. Si quieres hacer una prueba algo
> simple.
> Ejecuta un ciclo de 1000 records y muevete en el haciendo cualquier cosa y
> haz ese mismo ciclo en un lenguaje como php, perl o lo que mas te guste ,
> entonces veras la diferecia
>
> Como diria Alvaro, esta optimizada para sentencias declarativas, es decir,
> SQL
>
> ------------------------------
> Date: Wed, 19 Sep 2012 22:36:33 +0100
> From: fasterzip(at)yahoo(dot)es
> Subject: Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de
> transacciones en una función.
> To: listas_quijada(at)hotmail(dot)com; jorgeenriqueg(at)gmail(dot)com;
> ecpug(at)postgresql(dot)org; pgsql-es-ayuda(at)postgresql(dot)org
>
> Es raro lo que dices que será eterno, si se supone que esa capa de
> procesamiento pesado de datos la debe manejar la BD y no una capa de
> persistencia en el medio.
>
>
>   ------------------------------
> *De:* Edwin Quijada <listas_quijada(at)hotmail(dot)com>
> *Para:* jorgeenriqueg(at)gmail(dot)com; ecpug(at)postgresql(dot)org; "
> pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
> *Enviado:* Miércoles 19 de septiembre de 2012 13:02
> *Asunto:* [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de
> transacciones en una función.
>
>  1- No se puede porque una funcion en si misma ya es una transaccion, es
> decir, que si la abortas se abortaran los 80000
> 2- No hay que hacer commit por 1
> 3- Para lo que deseas tendras que usar al scripting languaje, asi envias
> cada record con su respectivo commit y obtendrias lo que deseas
> 4- Hacer un ciclo de 80000 records en una funcion es MUY MALA IDEA ese
> proceso tardara horas,depende lo que haga, para procesar esos 80M records.
> Lo que te sugiero es que uses perl, php o lo que mas te guste para hacer
> ese trabajo y no dentro de la BD porque,aparte de que no se puede como
> quieres, sera eterno.
>
>
> ------------------------------
> From: jorgeenriqueg(at)gmail(dot)com
> Date: Wed, 19 Sep 2012 10:18:18 -0500
> Subject: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función.
> To: ecpug(at)postgresql(dot)org; pgsql-es-ayuda(at)postgresql(dot)org
>
> Hola Grupo Buenos Días,
>
> Tengo una función que realiza cálculos a unos 80 mil registros los
> registros los recorro en un cursor y se hace calculo registro por registro
> y quiero que no se haga commit al final de todo el procesamiento si no que
> se haga commit por cada registro procesado y saber si se proceso o
> hubo algún error. como puedo hacer eso?? de antemano gracias por la ayuda
> que me puedan dar.
>
>
> Att.
> Jorge Garcia
>
>
>


-- 
Cordialmente.


William Diaz Pabón
Cel: 3157397356
Bogotá - Colombia

--
Solo para Mujeres: http://www.lineadebelleza.com/

In response to

Responses

ecpug by date

Next:From: Alvaro HerreraDate: 2012-09-20 16:04:55
Subject: Re: Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función.
Previous:From: Edwin QuijadaDate: 2012-09-20 14:50:14
Subject: RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función.

pgsql-es-ayuda by date

Next:From: Alvaro HerreraDate: 2012-09-20 16:04:55
Subject: Re: Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función.
Previous:From: Edwin QuijadaDate: 2012-09-20 14:50:14
Subject: RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función.

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group