PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#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 wink
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,

gleu a écrit :

  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"

gleu a écrit :

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.

gleu a écrit :

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

Pied de page des forums