Vous n'êtes pas identifié(e).

#1 03/02/2010 18:44:24

etpaf
Membre

Requète extrèmement lente.

Salut,

J'ai un petit problème de lenteur qui me pose des soucis.

Lorsque j'exécute une requête sur une grosse table de mon application (8.000.000 de lignes, 2,6giga) j'obtiens une liste d'identifiants en à peine quelques millisecondes (+/-40).
Si j'utilise le résultat de ma requête dans une seconde requête (la 50aine de identifiants) dans la clause "where id in (ma liste)" j'ai les résultats qui ressortent aussi en millisecondes (+/-500).
(table 2= 3.000.000 de lignes et 1,2 giga). Jusque là, vous me direz que c'est impeccable.

Mais si j'essaie de faire une jointure entre les 2 tables pour récupérer le même résultat que celui retourné par la seconde requête, le temps d'exécution dépasse les 5 minutes si j'utilise un "inner join" et 1 minute si je passe par un "where table1.id=table2.id".

Quelqu'un voit où se situe le problème?
Je n'ai aucun ennuis de performance à quelqu'autre niveau.

J'utilise postgres 8.2.14 sur centos 5.3, il s'agit d'un serveur dédié (6giga de ram, raid 10).

Dernière modification par etpaf (03/02/2010 18:47:43)

Hors ligne

#2 03/02/2010 18:59:57

Marc Cousin
Membre

Re : Requète extrèmement lente.

Sans le code des requêtes, les tables et leur définition, ainsi que les plans d'exécution, non…

Enfin si, il y a plein d'hypothèses possibles, mais sans plus d'infos, aucun intérêt d'en avancer au hasard.

Merci de fournir les informations manquantes.


Marc.

Hors ligne

Pied de page des forums