IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

[plpgsql -- nested function] problème de verrous


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Points : 83
    Points
    83
    Par défaut [plpgsql -- nested function] problème de verrous
    Bonjour,

    J'ai deux fonctions :

    alimentation() et alimentation(my_insee character varying).

    La première est définit ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    CREATE OR REPLACE FUNCTION alimentation() RETURNS void AS
    $BODY$
     
    DECLARE
    commune_en_cours nav_commune%ROWTYPE;
     
    BEGIN
     
    FOR commune_en_cours IN (SELECT * FROM nav_commune) LOOP
        PERFORM alimentation(commune_en_cours.insee);
    END LOOP;
     
    END;
     
    $BODY$
      LANGUAGE 'plpgsql' VOLATILE;
    ALTER FUNCTION alimentation() OWNER TO "schema";
    Lorsque je lance ma fonction générale (sans paramètre) cela engendre la création automatique d'un nombre conséquent de verrous.
    Lorsque ma table nav_commune contient beaucoup de champs, j'obtiens un message d'erreur m'indiquant que je dépasse le nombre de verrous autorisés.
    Bien sûr je pourrais modifier la valeur de max_locks_per_transaction mais c'est peu générique.

    De ce fait mes questions sont les suivantes :

    Pourquoi cette méthode -une fonction globale qui appelle une sous fonction paramétrée pour différentes valeurs du paramètre- engendre-t-elle toutes ces créations de verrous ?

    Quelle méthode employer pour corriger ce problème, ou comment interdire la création de verrous ?
    note : en effet, je garantis que cette fonction ne sera pas en concurence avec d'autres appels pour les tables considérées et donc les verrous ne me sont pas nécessaire...

    Merci. Cordialement,

  2. #2
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Points : 83
    Points
    83
    Par défaut Auto commit
    Un auto-commit suffirait-il à faire sauter mes verrous ?

Discussions similaires

  1. [Embedded Matlab Function] Problème d'utilisation
    Par berberat dans le forum Simulink
    Réponses: 1
    Dernier message: 21/09/2007, 15h27
  2. [function]probléme a la creation
    Par Rukia dans le forum SQL
    Réponses: 7
    Dernier message: 25/06/2007, 00h16
  3. Problême de Verrous Externes
    Par comment_ca dans le forum Forms
    Réponses: 7
    Dernier message: 29/03/2007, 17h57
  4. [nested:equal]problème avec valeur à comparer
    Par david06600 dans le forum Struts 1
    Réponses: 7
    Dernier message: 27/11/2006, 17h47
  5. Creat Function => problème de sauvegarde
    Par popin dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 16/11/2006, 15h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo