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-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 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | ecpug pgsql-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/
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2012-09-20 16:04:55 | Re: Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función. |
Previous Message | Edwin Quijada | 2012-09-20 14:50:14 | RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función. |
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2012-09-20 16:04:55 | Re: Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función. |
Previous Message | Edwin Quijada | 2012-09-20 14:50:14 | RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función. |