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 :

Optimisation d'une requête


Sujet :

PostgreSQL

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut Optimisation d'une requête
    Bonjour à tous,

    Je possède une table A (ida, idb, context). Selon le contexte (qui ne peut prendre que deux valeurs possibles), un seul idb sera lié à un ou plusieurs ida.

    Je dois faire une requête SELECT qui renvoie les associations idb à ida dans les différents contextes, donc la première colonne sera un idb, et la seconde un tableau d'idb.

    (les idb référence une table B mais c'est pas important, faut juste les récupérer)

    Un petit exemple du résultat que j'attends :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    A:ida   A:idb   A:context
    1        1        1
    1        2        0
    1        3        0
    1        4        0
     
    => résultat attendu :
    1, ARRAY[2,3,4]
    Voici ce que j'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    SELECT
       sub.id, ARRAY(
          SELECT
             a.ida
          FROM
             A a
          WHERE
             a.context = 0 AND ida = sub.id)
       FROM
       (
          SELECT
             a.id
          FROM
             A a
          WHERE
             a.context = 1
       ) sub;
    Le soucis c'est que sur mon jeu de données, cette requête est très très très très longue

    Auriez-vous des optimisations à me proposer ?

    Merci à vous,
    A bientôt

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Il faudrait un EXPLAIN ANALYZE de la requête, ou au pire un EXPLAIN tout seul.

    A noter aussi que ta requête n'utilise pas du tout idb, et en ce sens ne correspond pas à la description que tu en fais.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    Citation Envoyé par estofilo Voir le message
    A noter aussi que ta requête n'utilise pas du tout idb, et en ce sens ne correspond pas à la description que tu en fais.
    Oui c'était ça le problème..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Optimisation d'une requête
    Par Louis-Guillaume Morand dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/12/2005, 18h21
  2. Optimisation d'une requête d'insertion
    Par fdraven dans le forum Oracle
    Réponses: 15
    Dernier message: 01/12/2005, 14h00
  3. Optimisation d'une requête patchwork
    Par ARRG dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/09/2005, 15h23
  4. optimisation d'une requête avec jointure
    Par champijulie dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 07/07/2005, 09h45
  5. [DB2] Optimisation d'une requête
    Par ahoyeau dans le forum DB2
    Réponses: 7
    Dernier message: 11/03/2005, 17h54

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