Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 15/02/2013 16:56:47
- ghoul
- Membre
gérer le commit et dbms_output
Bonjour,
Merci tout d'abord pour ce forum;)
Est ce qu'il y a un moyen de gérer le commit dans une fonction PostgreSQL?
et y a t il un équivalent de dbms_output ?
Par avance Merci
Hors ligne
#2 15/02/2013 17:31:37
- gleu
- Administrateur
Re : gérer le commit et dbms_output
Est ce qu'il y a un moyen de gérer le commit dans une fonction PostgreSQL?
Si vous voulez dire "exécuter un COMMIT ou un ROLLBACK à l'intérieur d'une procédure stockée", non, ce n'est pas possible.
y a t il un équivalent de dbms_output ?
Oui, utiliser RAISE NOTICE (ou LOG, ou WARNING), dont le message s'affichera à l'écran et dans les logs suivant les valeurs des paramètres respectifs (client_min_messages et log_min_messages).
Guillaume.
Hors ligne
#3 15/02/2013 18:58:18
- ghoul
- Membre
Re : gérer le commit et dbms_output
Merci pour votre réponse
par contre si on peut pas gérer les commit dans une fonctions peut-on le faire dans les paramètre de config de la base?
En fait,
Mon problème est: quand j'exécute une fonction d'insertion dans une base postgreSQL, le temps d'exécution est de 2 heures.
Et pendant tout ce temps ma table reste bloquée en attendant la fin de l’insertion et le commit.
existe t-il un moyen pour optimiser la fonction ou le Commit autrement?
Par avance Merci
Hors ligne
#4 17/02/2013 13:26:10
- gleu
- Administrateur
Re : gérer le commit et dbms_output
existe t-il un moyen pour optimiser la fonction ou le Commit autrement?
Non. Il faut que vous changiez votre façon de procéder. Une transaction doit généralement être très rapide... alors, deux heures, ça va poser des soucis. De toute façon, les modifications de données ne seront pas votre seul soucis dans le cadre d'une transaction longue.
Guillaume.
Hors ligne
#5 17/02/2013 14:38:56
- ghoul
- Membre
Re : gérer le commit et dbms_output
Bonjour,
Il faut que vous changiez votre façon de procéder
Est ce que vous puvez me donner plus le détails et comment je peux changer ma façon de procéder? un exemple si possible !!!
P.S Ma transaction permet en gros d'insérer plusieurs lignes dans une table et le commit et en mode "autocommit" alors que je veux le gérer manuellement "style un commit tout les 1000 lignes par exemple"
les modifications de données ne seront pas votre seul soucis dans le cadre d'une transaction longue.
qu'est ce que je dois prendre en charge encore lors de ce type de transaction dite longue?
Hors ligne
#6 17/02/2013 19:07:05
- gleu
- Administrateur
Re : gérer le commit et dbms_output
Si vous voulez couper votre transaction en plusieurs transactions, et que cette transaction est pour l'instant comprise dans une procédure stockée, il vous faut changer la procédure stockée pour qu'elle soit exécutée plusieurs fois ou pour que différentes procédures soient exécutées à la suite. Il m'est difficile d'aller plus dans le détail sans avoir une idée beaucoup plus détaillée de ce que fait votre procédure, désolé.
Guillaume.
Hors ligne
#7 17/02/2013 23:39:38
- ghoul
- Membre
Re : gérer le commit et dbms_output
En fait , j'ai une seule requête qui récupère une liste de personne à partir de plusieurs table et les insère dans une table finale.
et le mode de commit est "auto-commit"
le temps d’exécution est de deux heures comme je vous le dis précédemment.
je cherche un moyen de limiter le temps ainsi que le commit.
changer la procédure stockée pour qu'elle soit exécutée plusieurs fois ou pour que différentes procédures soient exécutées à la suite
pourriez vous me donner un exemple SVP
Merci par avance
Dernière modification par ghoul (18/02/2013 14:47:42)
Hors ligne
#8 23/02/2013 14:51:49
- gleu
- Administrateur
Re : gérer le commit et dbms_output
Je ne peux pas vous donner d'exemple intéressant sans en savoir plus sur le contenu de votre procédure stockée et sur son utilisation.
Guillaume.
Hors ligne
Pages : 1