PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

Ré-utilisation d'un résultat de requête

Technique - général | Ré-utilisation d'un résultat de requête

Par reno le 23/11/2005 - 12:42

Bonjour,

Actuellement, j'ai une série de requêtes qui effectuent des calculs sur la base, mais qui utilisent à chaque fois une même sous-requête (une fonction utilisateur, plus précisément) ; et je trouve ça problématique, car pas du tout optimisé.

N'y a-t-il pas sous Postgre une notion de variable ou quelque chose du genre ?

Concrètement, ma fonction me retourne une liste d'ID d'une table, et c'est à partir de cette liste que j'effectue ensuite diverses requêtes sur la base. Donc, si j'effectue 10 requêtes de calcul, j'appelle la fonction 10 fois, alors que le résultat est chaque fois le même.

Voilà... si vous avez une idée, je suis preneur.

Reno

NB: j'utilise Postgre avec PHP, donc une solution serait de récupérer ma liste sous forme de chaîne en PHP et de l'injecter dans mes requêtes, mais je privilégie quand même une solution purement PostGre.

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

Pourquoi ne pas utiliser une

sparky/ = 23 Novembre, 2005 - 15:23

Pourquoi ne pas utiliser une table temporaire, ? Ainsi tu sauveras tes données le temps de la transaction/connection, tu peux utiliser create temporary table, les données et la table ne seront visible que dans la session en cours et quand la session (ou transaction) est finie la table est automatiquement droppé.


Intéressant... j'avais song

reno/ = 23 Novembre, 2005 - 18:34

Intéressant... j'avais songé à créer une table temporairement, mais je trouvais ça lourd: mais je ne savais pas qu'il y avait une fonction spécifique pour ça... je vais me pencher là-dessus.

Merci !


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.