Re: UPDATE de plus en plus long

From: Dimitri Fontaine <dimitri(at)2ndQuadrant(dot)fr>
To: Paul Poirel <poirelpa(at)gmail(dot)com>
Cc: Pgsql Fr Generale <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: UPDATE de plus en plus long
Date: 2013-11-19 13:47:11
Message-ID: m2siusv6zk.fsf@2ndQuadrant.fr
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Paul Poirel <poirelpa(at)gmail(dot)com> writes:
> Mon problème est que cette boucle for est en réalité une fonction sur un
> curseur. Il m'est impossible de découper ce traitement en plusieurs
> transactions : il faut qu'un seul appel à la fonction principale déroule
> tous les traitements.

1. les curseurs fonctionnent aussi dans une session :

http://www.postgresql.org/docs/9.3/interactive/sql-declare.html

WITH HOLD specifies that the cursor can continue to be used after
the transaction that created it successfully commits.

2. le traitement en question doit-il créer autant de tables ?

Cela me semble étonnant, est-il possible d'utiliser une seule table
temporaire et de faire un TRUNCATE en fin de traitement ?

Ou mieux, d'exprimer le traitement en SQL plutôt qu'en procédural ?

Note : UPDATE sait travailler sur une jointure.

--
Dimitri Fontaine
http://2ndQuadrant.fr PostgreSQL : Expertise, Formation et Support

--
Envoi via la liste pgsql-fr-generale (pgsql-fr-generale(at)postgresql(dot)org)

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Paul Poirel 2013-11-19 13:51:10 Re: UPDATE de plus en plus long
Previous Message Michel Payan 2013-11-19 13:42:59 Re: UPDATE de plus en plus long