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 d'une requete avec extraction de minimum et maximum d'une date

Technique - optimisation | optimisation d'une requete avec extraction de minimum et maximum d'une date

Par jsubei le 05/09/2007 - 11:11

Bonjour Ă  tous,

j'ai une requete de la forme

SELECT id, min(the_date), max(the_date) from ma_table group by id;

que je cherche Ă  optimiser.

Naivement j'ai crée un index b-tree sur la colonne the_date mais cela est sans effet sur l'extraction du minimum et du maximum (normal, ce ne sont pas des constantes, c'est bien cela ?)

je sais également que dans ce cas je ne peut pas créer d'index sur la function ma_table(min(the_date)) puisque c'est une fonction aggrégative.

avez vous une idée ? cela est très pénalisant d'un point de vu temps machine.

Mille merci

Norbert

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.

PostgreSQL n'utilise pas les

Guillaume Lelarge/ = 12 Septembre, 2007 - 00:28

PostgreSQL n'utilise pas les index pour les fonctions min, max et count. Cela passe donc par un parcours séquentiel, ce sui est souvent coûteux.

Il n'existe pas vraiment de moyen pour éviter cela. Le seul à ma connaissance est de stocker cette information dans une table. À chaque insertion, mise à jour, suppression, un trigger vérifie la valeur min/max et la modifie si nécessaire. Un peu lourd à mettre en place mais efficace.

--
Guillaume Lelarge.
Administrateur de bases de données
http://dalibo.com - http://dalibo.org


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