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

Optimisation de requetes

Technique - optimisation | Optimisation de requetes

Par hondjack le 09/04/2008 - 16:18

Bonjour,

Je voudrai savoir laquelle des deux requetes suivantes est plus optimales :

RQ1 :
SELECT C1, C2
FROM T1, (UneSousRequete) AS SR
WHERE T1.id = SR.id
SELECT C1, C2
FROM T2, (UneSousRequete) AS SR
WHERE T2.id = SR.id

RQ2 :
SELECT T.C1, T.C2
FROM
(SELECT id, C1, C2 FROM T1
UNION
SELECT id, C1, C2 FROM T2) AS T,
(UneSousRequete) RS
WHERE T.id = RS.id

J'explique si c'est pas claire.

Au fait j'ai une sous-requete (UneSousRequete) que je joins à plusieurs tables (dans l'exemple 2 tables).

Je voudrai savoir :
1- si factoriser la sous-requete (UneSousRequete) dans le RQ2 peut ameliorer les performances.
2- est-ce que le moteur de requetes est suffisament intellegent pour calculer une SEULE fois la sous-requete (et la gardée, proprement dans son cache) et l'utiliser dans chaque UNION (RQ1).

Merci pour votre aide.

Bien cordialement

Hondjack

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.

Optimisation de requetes (bis)

hondjack/ = 9 Avril, 2008 - 16:22

Une derniere question :
3- est-ce que dans RQ2 l'index sur 'id' pourra etre utilisé ?

merci...


Explain

SAS/ = 18 Avril, 2008 - 09:25

Bonjour,

Avant toute chose, je vous conseille de tenter un "explain" ou "explain analyze" sur vos deux requêtes.

Cela devrait vous fournir de précieuses indications sur le déroulement des requêtes et l'utilisation des index.

Librement,
Stéphane Schildknecht
Dalibo
PostgreSQLFr


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