Is there any reason you can't do something like this instead?
UPDATE produitscommandes SET prixvente = p.prixvente FROM produits p WHERE produit = p.numero; On 4/27/07, Martial Elise KIBA <[EMAIL PROTECTED]> wrote:
Hi all, I have a database running on POstgreSQL 8.2.3. The plpgsql functions were running well on my previous release. When i migrated to 8.2.3, I noticed some performance degradation, specially whith one of my function which makes an update to a table. Here is the code of the function CREATE OR REPLACE FUNCTION update1() RETURNS varchar(50) AS $BODY$ DECLARE v_cur CURSOR FOR SELECT numero, prixvente FROM produits; v_prixvente produitscommandes.prixvente%TYPE; v_produit produits.numero%TYPE; BEGIN OPEN v_cur; LOOP FETCH v_cur INTO v_produit, v_prixvente; UPDATE produitscommandes SET prixvente=v_prixvente WHERE produit=v_produit; EXIT WHEN NOT FOUND; -- Sortie de la boucle END LOOP; CLOSE v_cur; RETURN 'mise à jour effectuée'; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE; ''######################################"" produitscommandes has a primary key on commande and produit produitscommandes has 2 indexes on commande and produit produits has a primary key on numero When i call the function it takes a lot (it can take 30 minutes for approximatively 5 000 rows in produitscommandes and 3 000 in produits) thanks all for your help. PS: tried vaccum and analyse on table produitscommandes Martial E. W. KIBA Ingénieur de Conception en Informatiques Option Génie-Logiciel Tél: (+226) 70 15 44 93 Mail: [EMAIL PROTECTED] / [EMAIL PROTECTED] ---------------------------(end of broadcast)--------------------------- TIP 1: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly
-- Jonah H. Harris, Software Architect | phone: 732.331.1324 EnterpriseDB Corporation | fax: 732.331.1301 33 Wood Ave S, 3rd Floor | [EMAIL PROTECTED] Iselin, New Jersey 08830 | http://www.enterprisedb.com/ ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings