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 20/10/2007, 11h15   #1
Membre régulier
 
Inscription : avril 2004
Messages : 284
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 284
Points : 75
Points : 75
Par défaut Requête lente: besoin de conseils

Bonjour,

J'ai créé une base très simple, l'idée est la suivante :

J'ai plusieurs fichiers de 6 000 000 de lignes chacun, chaque fichier est constitué de coordonnées X, Y et d'une valeur associée.

Chaque couple X, Y est donc associé à plusieurs fichier, et cette relation possède une valeur :



J'ai saisi pour l'instant 2 fichiers, soit 13 000 000 d'entités pour la table files_has_coordinates.

Je veux rechercher pour un fichier donné la valeur associée à certaines coordonnées.

Code :
1
2
 
SELECT spot_values FROM files JOIN files_has_coordinates ON (idfiles = files_idfiles) JOIN coordinates ON (idcoordinates = coordinates_idcoordinates) WHERE (coord_x = 150 AND coord_y = 145) AND file_name = 'results_1.csv';
J'ai exécuté un VACUUM et ANALYZE avant de lancer mes recherches.

Les requêtes sont assez lentes (entre 3 et 10 secondes pour chaque couple) et j'ai un nombre très important de requêtes à effectuer

Petite question: la contrainte UNIQUE sur (coord_x, coord_y) crée-t'elle bien un index sur le couple ?

Info config: mon PC est récent (4 mois) sous Ubuntu Feisty et PostgreSQL 8.2.

Verriez-vous un problème dans la construction des tables et / ou des contraintes par rapport au besoin, auriez-vous des conseils sur l'optimisation des requêtes ?

En vous remerciant,

C. Tobini
ctobini est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2007, 08h23   #2
Membre habitué
 
Inscription : août 2007
Messages : 128
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 128
Points : 146
Points : 146
À ma connaissnce, une contrainte UNIQUE ajoute automatiquement un index unique. C'est d'ailleurs ce qui permet à PG de s'assurer de l'unicité des valeurs de la colonne concernée.

Tu peux savoir si PG utilise un index en lançant un
Code :
EXPLAIN ANALYZE ta_requete;
Il serait d'ailleurs intéressant que tu nous fournisses cette information pour qu'on puisse mieux t'aider. Il serait aussi bien qu'on sache comme tu as configuré PG.
gleu_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h49.


 
 
 
 
Partenaires

Hébergement Web