From: | Paul Poirel <poirelpa(at)gmail(dot)com> |
---|---|
To: | Dimitri Fontaine <dimitri(at)2ndquadrant(dot)fr> |
Cc: | Pgsql Fr Generale <pgsql-fr-generale(at)postgresql(dot)org> |
Subject: | Re: UPDATE de plus en plus long |
Date: | 2013-11-19 13:57:11 |
Message-ID: | CAK9eNFxtpd2L0YsrxhbE2OyQPWxu7miVkM4aM+sqmmukDmF=dA@mail.gmail.com |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-fr-generale |
>
>
> 1. les curseurs fonctionnent aussi dans une session :
Ce curseur n'est qu'une étape d'un traitement lancé par une fonction
PL/PGSQL. Je n'ai pas le choix de terminer la transaction.
>
>
> 2. le traitement en question doit-il créer autant de tables ?
>
Dans mon exemple, il n'y a qu'une seule table avec une seule ligne.
Seul l'UPDATE est répété.
> Cela me semble étonnant, est-il possible d'utiliser une seule table
> temporaire et de faire un TRUNCATE en fin de traitement ?
La valeur mise à jour est utile après la fin du traitement.
>
> Ou mieux, d'exprimer le traitement en SQL plutôt qu'en procédural ?
Ce n'est malheureusement pas une option.
>
> Note : UPDATE sait travailler sur une jointure.
>
cf. ma réponse précédente qui donne plus de détails sur le fonctionnement
réel : cet update ne fait qu'incrémenter un champ, à la manière d'une
séquence. Je ne peux pas le sortir de la boucle.
Merci pour votre aide
Paul
From | Date | Subject | |
---|---|---|---|
Next Message | Michel Payan | 2013-11-19 14:03:10 | Re: UPDATE de plus en plus long |
Previous Message | Paul Poirel | 2013-11-19 13:51:10 | Re: UPDATE de plus en plus long |