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 requête avec jointure

Technique - optimisation | optimisation requête avec jointure

Par Eval le 01/08/2006 - 16:39

Bonjour,

Je travaille sur un projet utilisant une BDD (postgresql 8.1). Mon principal problème concerne les performances de requêtes avec jointure.

Mes tables sont présentées de la façon suivante (c’est une présentation simplifiée):

messages
-----------------
Date | id | msg

Et

correspondance
--------------------
Id | name

Et les requêtes effectuées sont de la forme :

SELECT DISTINCT messages. id, correspondance.name, messages.msg
FROM messages
JOIN correspondance
ON messages. id = correspondance. id
WHERE date BETWEEN '2006-06-25' AND '2006-07-29'
LIMIT 100 OFFSET 0

Les améliorations déjà apportés sur les tables ont été :
- le partitionnement en fonction de la date (une partition contient les données pour une semaine),
- l’utilisation d’index placé sur la date (mais il ne semble pas utilisé pour une contrainte sur un intervalle dans le WHERE) et sur les différents identifiants.

Ma première question concerne l’index sur la date, est il possible de l’utiliser avec un intervalle de temps ? si oui de quelle manière ?

Ma seconde question concerne le performances de la jointure (ce qui est le plus gourmand d’après l’outil d’analyse de pgadmin). Est il possible d’améliorer la jointure ?

Si vous avez des conseils à soumettre ils sont les bienvenus. Merci d'avance de votre réponse.

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.

Utilisez des index peut-être

sparky/ = 2 Août, 2006 - 16:16

Utilisez des index peut-être intéressant, à essayer sur les colonnes qui font la jointure


Plus d'information

koollman/ = 10 Août, 2006 - 09:30

Il faudrait plus d'information, surtout sur la définition precise des tables (il y a des clés primaires? des contraintes?), et éventuellement montrer l'analyse complete de la requete.

Deja, pour ce qui est des dates, l'index est utilisé pour BETWEEN.

Ensuite, pourquoi 'DISTINCT' ? (et aussi, pourquoi OFFSET 0, mais ca devrait moins influer)

Apres, ajouter des index sur les id devrait ameliorer les performances
--
Thomas Samson


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