RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función.

From: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
To: <fasterzip(at)yahoo(dot)es>, <jorgeenriqueg(at)gmail(dot)com>, <ecpug(at)postgresql(dot)org>, "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función.
Date: 2012-09-20 14:50:14
Message-ID: BAY155-W3794F32612F122DD458919E39A0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: ecpug pgsql-es-ayuda


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 800002- No hay que hacer commit por 13- Para lo que deseas tendras que usar al scripting languaje, asi envias cada record con su respectivo commit y obtendrias lo que deseas4- 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

In response to

Responses

Browse ecpug by date

  From Date Subject
Next Message William Diaz Pabón 2012-09-20 15:00:10 Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función.
Previous Message Alcides Rivera 2012-09-20 01:40:18 Re: Actualizacion PGDay Ecuador 2012

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message William Diaz Pabón 2012-09-20 15:00:10 Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Ayuda Manejo de transacciones en una función.
Previous Message Cesar Martin 2012-09-20 14:02:29 Re: Problemas con pg_dump