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

Langage SQL Discussion :

optimisation de Requete


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 225
    Par défaut optimisation de Requete
    bonjour ,
    J'ai la table suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    id	              date                           	value
    12501	2009-08-25 07:57:09.0	       54
    12501	2009-08-27 07:52:25.0	       46
    13296	2009-09-03 10:55:00.0	       54
    13462	2009-09-22 23:01:00.0	       61
    13462	2009-09-23 04:50:03.0	       45
    13631	2009-10-14 13:51:20.0	        54
    13631	2009-10-15 08:10:44.0	        41
    13631	2009-10-16 08:40:52.0	        46
    13631	2009-10-17 10:38:26.0	        42
    13631	2009-10-18 07:53:41.0	        42
    J'essaie de faire uen requete pour avoir la value correspondant aux min de la date pour chaque id.


    12501 2009-08-25 07:57:09.0 54
    13462 2009-09-22 23:01:00.0 61
    13631 2009-10-14 13:51:20.0 54

    J'ai fait le requete suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    select id , value
     from  T
     where  date in  
    (select  min (T2.date )  from T  T2 
     w group by T2.id)
    Mais cette requete est assez lente (9 secondes !)

    Avez vous des conseils pour optimiser..

    Merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    C'est un problème qui revient très régulièrement sur ce forum.
    Quel est votre SGBD ?

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 225
    Par défaut
    Citation Envoyé par Waldar Voir le message
    C'est un problème qui revient très régulièrement sur ce forum.
    Quel est votre SGBD ?

    Sybase ASE.
    Merci

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Essayez ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT T.id, T.date, T.value
      FROM T
           INNER JOIN (  select id, min(date) as dt_min
                           from T
                       group by id) T2
             on T2.id     = T.id
            and t2.dt_min = T.date

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2002
    Messages
    225
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 225
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Essayez ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SELECT T.id, T.date, T.value
      FROM T
           INNER JOIN (  select id, min(date) as dt_min
                           from T
                       group by id) T2
             on T2.id     = T.id
            and t2.dt_min = T.date
    Merci

    c'est plus rapide


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

Discussions similaires

  1. Optimisation de requete
    Par Scorff dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 11/07/2005, 09h59
  2. [sgbd]Optimisation des requetes Oracle/Perl
    Par linou dans le forum SGBD
    Réponses: 7
    Dernier message: 30/06/2005, 18h09
  3. Optimiser une Requetes SQL sous ASP
    Par NeHuS dans le forum ASP
    Réponses: 8
    Dernier message: 18/04/2005, 16h26
  4. Optimisation de requete
    Par cyril dans le forum SQL
    Réponses: 3
    Dernier message: 09/10/2003, 08h57
  5. Optimisation des requetes
    Par bifidus dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/10/2003, 11h29

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