Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/09/2006, 10h50   #1
Membre confirmé
 
Avatar de linar009
 
Inscription : juillet 2006
Messages : 497
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 497
Points : 271
Points : 271
Par défaut Requête SELECT interminable

Bonjour, pourriez-vous me dire pour l'execution de cette requête prend un temps phénoménal (plus de 7 minutes) sachant que le résultat ne retourne que 10 résultats environ ?

Code :
1
2
3
4
5
6
7
8
9
SELECT seq, loc, nom, GROUP, date 
   FROM T_plan, T_trait, T_traitement
   WHERE T_plan.id = '999' 
   AND date LIKE '2006-09-13' 
   AND T_plan.id_trait = T_trait.id_trait 
   AND T_trait.id = T_traitement.id 
   AND est_actif='OUI' 
   AND STATUS < 5 
   AND GROUP ='NON'

N.B. : la table T_plan contient 195000 enregistrements, la table T_traitement 1765 et la table T_trait 20500.

Merci.
__________________
Je n'ai pas participé à de nombreuses courses de spermatozoïdes, mais j'ai donné de nombreux départs...
linar009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2006, 10h58   #2
Membre Expert
 
Avatar de zooro
 
Inscription : avril 2006
Messages : 922
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2006
Messages : 922
Points : 1 149
Points : 1 149
Salut,
Quelle version de PostgreSQL utilises-tu ? Je ne sais pas pour la dernière version, mais avant il fallait "faire du rangement" manuellement, en lançant régulièrement les commandes de la famille VACUUM et ANALYSE pour que les statistiques internes soient mises à jour.
J'avais eu pas mal de problèmes de perfs avant de m'en rendre compte.
__________________
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
zooro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2006, 12h59   #3
Membre confirmé
 
Avatar de linar009
 
Inscription : juillet 2006
Messages : 497
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 497
Points : 271
Points : 271
Ok.

Il me suffit donc de lancer VACUUM ANALYZE sur chaque table ?
__________________
Je n'ai pas participé à de nombreuses courses de spermatozoïdes, mais j'ai donné de nombreux départs...
linar009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2006, 13h54   #4
Membre Expert
 
Avatar de zooro
 
Inscription : avril 2006
Messages : 922
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2006
Messages : 922
Points : 1 149
Points : 1 149
La commande VACUUM ANALYSE FULL permet de mettre les stats à jour, et de réorganiser physiquement les données (libération d'espace inutilisé, etc.) sur le disque. Le problème est qu'elle verrouille les tables sur lesquelles elle travaille et que son exécution peut prendre du temps. Il est généralement recommandé de l'exécuter une fois par jour, en période creuse (la nuit par exemple).

Sinon, la commande VACUUM ANALYSE seule en fait un peu moins (je ne sais plus exactement la différence), mais ne verrouille pas les tables, et s'exécute un peu plus vite.

Enfin, la commande ANALYSE seule met simplement à jour les stats, ne verrouille pas les tables, et s'exécute généralement rapidement.

Tu peux commencer par exécuter seulement ANALYSE pour voir si la situation s'améliore.
Il existe aussi un démon pg_autovacuum qui gère tout ça seul. Mais en fonction des versions de PostgreSQL, il n'est pas fourni, ou alors il faut le compiler soi-même.
__________________
[alkama] quelqu'un est allé voir la guerre des mondes?
[@Chrisman] j'espère pour spielberg
--- bashfr.org
zooro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/09/2006, 14h45   #5
Membre confirmé
 
Avatar de linar009
 
Inscription : juillet 2006
Messages : 497
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 497
Points : 271
Points : 271
OK Merci
__________________
Je n'ai pas participé à de nombreuses courses de spermatozoïdes, mais j'ai donné de nombreux départs...
linar009 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h54.


 
 
 
 
Partenaires

Hébergement Web