IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

Requête lente: besoin de conseils


Sujet :

PostgreSQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 334
    Points : 123
    Points
    123
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 128
    Points : 143
    Points
    143
    Par défaut
    À 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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

Discussions similaires

  1. Grand nombre de requête web - besoin de conseils
    Par Florew dans le forum Général Conception Web
    Réponses: 0
    Dernier message: 16/11/2011, 20h06
  2. Requête assez lente, besoin d'optimisation
    Par Marco94 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 25/02/2011, 15h48
  3. Réponses: 4
    Dernier message: 10/03/2009, 17h41
  4. Besoin de conseil concernant cette requête SQL
    Par loic20h28 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 30/01/2009, 09h36
  5. Réponses: 1
    Dernier message: 06/01/2003, 07h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo