Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/02/2007, 20h08   #1
say
Membre Expert
 
Avatar de say
 
Inscription : août 2002
Messages : 1 175
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : août 2002
Messages : 1 175
Points : 1 135
Points : 1 135
Envoyer un message via MSN à say
Par défaut Diff entre Fonctions et Procédures Stockées

Bonjour à tous,

nous rencontrons quelques problèmes de performance, et donc on se penche sur différentes solutions.

une question s'impose : quelle différence exacte entre procédures stockées et fonctions?

puis-je envisagé que lors de l'exécution d'une PS le serveur rend la main à l'appli cliente pdt le traitement pour lequel je n'attends pas de résultat particulier

merci d'avance de vos lumières

Say
__________________
Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
_ _ _ _ _ _ _ _ _

La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
_ _ _ _ _ _ _ _ _

Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres
say est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2007, 09h01   #2
Membre Expert
 
Avatar de Alexandre T
 
Inscription : mai 2002
Messages : 1 022
Détails du profil
Informations personnelles :
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations forums :
Inscription : mai 2002
Messages : 1 022
Points : 1 123
Points : 1 123
En principe, une procédure stockée ne retourne pas de résultat. Les variables transmises par références peuvent néanmoins être modifiée et utilisée comme résultat. Une fonction retourne un résultat et, surtout, une fonction peut être appelée au sein d'une requête. Oui une application peut demander l'exécution d'une requête et ne pas attendre son résultat. Il me semble qu'on parle de requête asynchrone.

Par exemple en PHP, le fonction pg_send_query() envoie la requête mais n'en n'attend pas la réponse. contrairement à la requête pg_query().
__________________
Alexandre T.

PHP5/MySQL5 Codes prêts à l'emploi
30 projets avec codes sources complets pour créer diaporamas photos, chat, arbre généalogique, statistiques de visites, création de graphiques, moteur de recherche, Sudoku etc...

Mes articles
Alexandre T est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2007, 09h09   #3
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,

Citation:
Envoyé par say
une question s'impose : quelle différence exacte entre procédures stockées et fonctions?
Dans PostgreSQL, il n'y en a pas : les procédures stockées (au sens de la plupart des autres SGBDR) sont des fonctions renvoyant un jeu (SETOF) de variables du type RECORD ou de celui d'une table de la base, avec la commande RETURN NEXT.
Citation:
Envoyé par say
puis-je envisagé que lors de l'exécution d'une PS le serveur rend la main à l'appli cliente pdt le traitement pour lequel je n'attends pas de résultat particulier
Ce n'est pas au niveau de la base de données que cela se fait, mais au niveau du client en appelant des méthodes asynchrones qui permettent au client de continuer à s'exécuter alors que la requête est encore en cours d'exécution.

[EDIT] Coiffé au poteau par Alexandre
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2007, 09h29   #4
say
Membre Expert
 
Avatar de say
 
Inscription : août 2002
Messages : 1 175
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : août 2002
Messages : 1 175
Points : 1 135
Points : 1 135
Envoyer un message via MSN à say
OK...je vais voir de quoi je dispose sur le client : C++ Buillder et PostGreDAC.

En fait, j'ai surtout un grand nombre d'update, notamment déclenchés par des triggers. j'aurais voulu récupéré la main une fois MON script SQL lancé, en partant du principe qu'il s'execute sans erreur.

Merci de ces infos et de la bataille acharnée pour me répondre
__________________
Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
_ _ _ _ _ _ _ _ _

La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
_ _ _ _ _ _ _ _ _

Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres
say est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2007, 12h19   #5
say
Membre Expert
 
Avatar de say
 
Inscription : août 2002
Messages : 1 175
Détails du profil
Informations personnelles :
Âge : 34

Informations forums :
Inscription : août 2002
Messages : 1 175
Points : 1 135
Points : 1 135
Envoyer un message via MSN à say
bon...pas de mode asynchrone pr PostGreDAC...

maybe la lib libpq..mais bon...ça va attendre.

merci en tout cas
__________________
Ils ne savaient pas que c'était impossible alors ils l'ont fait (Mark Twain)
_ _ _ _ _ _ _ _ _

La planète ne nous appartient pas, elle nous a été prêtée par nos enfants
_ _ _ _ _ _ _ _ _

Technos : Access, C++ Builder, SQL, PostgreSQL, Crystal Reports, XML entre autres
say est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h31.


 
 
 
 
Partenaires

Hébergement Web