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

Décisions SGBD Discussion :

optimisation requête


Sujet :

Décisions SGBD

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 43
    Points : 35
    Points
    35
    Par défaut optimisation requête
    vaut mieux faire une requête comme ceci :

    select * from aaaa where identifiant in (1, 2, 3, 4, 5, ... 995, 996, 997, 998, 999, 1000)

    ou 10 requête comme ceci :

    (select * from aaaa where identifiant in (1, 2, ..., 9, 10)) X 10

    Qu'elle est la meilleure méthode ?

    Est-ce vrai que le left join fait ramer le seveur mysql ?

  2. #2
    Nouveau membre du Club
    Inscrit en
    Juin 2003
    Messages
    38
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 38
    Points : 38
    Points
    38
    Par défaut
    Salut,
    Si tes identifiants se suivent (1,2,3,4,5,6,7,...900,901,902,903) comme a l'air de montrer ton exemple, il vaut mieux faire ca:

    select * from aaaa where identifiant between valeur_min and valeur_max...

    A+

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    oui, mais j'ai mis ces chiffres comme exemple, en réalité il n'y a aucune relation entre chaque chiffre.

    l'exemple de requête est :

    select * from aaaa where identifiant in (5545645, 564464, 415245, 251876123, 42561325, ... 95645646, 89723134, 6467898, 54615697, 54615611, 782319)

    c'est dire avoir 1 seule requête avec 1000 identifiant dans le in ou vaut mieux faire 10 requête avec 100 identifiants différents dans le in ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par alex2205
    oui, mais j'ai mis ces chiffres comme exemple, en réalité il n'y a aucune relation entre chaque chiffre.

    l'exemple de requête est :

    select * from aaaa where identifiant in (5545645, 564464, 415245, 251876123, 42561325, ... 95645646, 89723134, 6467898, 54615697, 54615611, 782319)

    c'est dire avoir 1 seule requête avec 1000 identifiant dans le in ou vaut mieux faire 10 requête avec 100 identifiants différents dans le in ?
    Quelle est la méthode la plus optimiser ?

    Je pose cette question car dans mon bureau, je suis le seule à soutenir qu'il vaut mieux faire une requête avec un in de 1000 identifiant que 10 requête avec un in de 100 identifiant.

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Effectivement, le IN est meilleur, mais je crains que tu rencontres un autre problème : la limite dans le nombre de valeur accepté par IN

    L'idéal serait de créer une table avec la liste des valeurs et faire une bonne vieille jointure

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    Merci

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

Discussions similaires

  1. Optimisation requête
    Par Débéa dans le forum Oracle
    Réponses: 5
    Dernier message: 11/01/2006, 15h39
  2. optimisation requête-regroupement info
    Par mariobedard dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/09/2005, 15h10
  3. Besoin d'aide pour optimiser requête SQL
    Par Keuf95 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 06/09/2005, 16h02
  4. Optimiser requête utilisant NOT IN
    Par Neilos dans le forum Langage SQL
    Réponses: 5
    Dernier message: 11/08/2005, 14h24
  5. optimisation requête SQL!!! help!!
    Par anathem62 dans le forum Requêtes
    Réponses: 2
    Dernier message: 24/05/2004, 16h26

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