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

Requêtes et SQL. Discussion :

Optimisation d'une requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier Avatar de ChTiRiBi
    Inscrit en
    Mai 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 131
    Points : 79
    Points
    79
    Par défaut Optimisation d'une requête
    salut a tous, j'ai une requête qui me pose un grand problème, son temps d'exécution et très grand merci de m'indiquer comment je peut l'optimiser.
    voici la requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT a.ID as a_ID," & _
    			"a.LogicalParentPath as a_LogicalParentPath," & _
    			"a.RefLanguage as a_RefLanguage," & _
    			"a.Priority as a_Priority," & _
    			"a.Title as a_Title," & _
    			"a.TreeDepth as a_TreeDepth," & _
    			"a.RefParent as a_RefParent," & _
    			"a.Active as a_Active," & _
    			"a.IsPrivate as a_IsPrivate," & _
    			"a.IsFrontPrivate as a_IsFrontPrivate," & _
    			"at.Label as at_Label " & _
    "FROM  article a, articletemplate at 
    WHERE a.RefTemplate=at.ID and a.ID = " & ToSQL(par_ID , "Number")

  2. #2
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Bonjour !
    Je suis surpris par :""FROM article a, articletemplate at ""... est-ce à dire que tu as 2 tables ? Une qui se nomme "article a" et l'autre "articletemplate at" ?

    Si c'est bien le cas, dans la clause SELECT, tu dois indiquer à quelle table se rattache quel champ et d'autre part - toujours dans le cas où j'ai bien compris... - je te conseillerais de mettre des crochets pour définir tes tables

  3. #3
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Tu as indexé tes champs ?

    Je pense que tu as du faire un petit tour déjà ici


  4. #4
    Membre régulier Avatar de ChTiRiBi
    Inscrit en
    Mai 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 131
    Points : 79
    Points
    79
    Par défaut
    c'est déjà fait avec a.LogicalParentPath et ce qui suit non?

  5. #5
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Citation Envoyé par ChTiRiBi Voir le message
    c'est déjà fait avec a.LogicalParentPath et ce qui suit non?
    ...Tu réponds à qui ??

  6. #6
    Membre régulier Avatar de ChTiRiBi
    Inscrit en
    Mai 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 131
    Points : 79
    Points
    79
    Par défaut
    je répond à bernardmichel, quant aux index j'ai essayé d'en faire un sur une colonne mais sans succé avec access 2007

  7. #7
    Membre expérimenté
    Homme Profil pro
    Indépendant développeur et formateur
    Inscrit en
    Octobre 2007
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant développeur et formateur
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 036
    Points : 1 598
    Points
    1 598
    Par défaut
    hello
    j'ai bien l'impression que tu as plusieurs tables sans lien entre elles (absence de join)
    N'importe quel base de donnée, dans ce cas, fait un produit cartésien des tables
    c'est à dire que si la 1° a 100lignes, la deuxième 4lignes et la troisième 25 lignes alors le produit en a 10000 (100 x 4 x 25)
    regarde combien tu as de table, combien d'enregistrements dans chaque et fait la multiplication et tu comprendre d'où vient la lenteur

    ceci dit, il m'arrive d'utiliser le produit de tables (tous les diamètres x toutes les longueurs x tous les aciers): faut juste faire attention aux cardinaux (sens math)

  8. #8
    Membre régulier Avatar de ChTiRiBi
    Inscrit en
    Mai 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 131
    Points : 79
    Points
    79
    Par défaut
    j'ai un peut moins de 100 tables dont certaines comporte une centaine de ligne, mais les autre requêtes ont un temps d'exécution assez court, juste cette requête pose problème

  9. #9
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Pour en revenir à ma question, quelles sont les noms exacts des tables concernées par cette requête ? et, effectivement quelles sont les liaisons entre elles ?

  10. #10
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    C'est quoi ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = " & ToSQL(par_ID , "Number")
    Je connais pas...

  11. #11
    Membre régulier Avatar de ChTiRiBi
    Inscrit en
    Mai 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 131
    Points : 79
    Points
    79
    Par défaut
    je croit que les noms des tables sont claires avec la requête non?
    si ce n'est pas le cas, cette requete conserne 2 tables : article et articletemplate

  12. #12
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Si je te pose la question c'est que ce n'est pas si "clair" que ça. J'ai d'autres choses à faire que poser des questions stupides !!

    Regardes par toi-même !!! :

    "FROM article a, articletemplate at

  13. #13
    Membre régulier Avatar de ChTiRiBi
    Inscrit en
    Mai 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 131
    Points : 79
    Points
    79
    Par défaut
    article a et articletemplate at concernent les tables article et articletemplate, pour des raison d'optimisation, on renomme les tables (dans notre cas on a renommé la table article par "a" et la table articletemplate par "at"), c'est basique dans l'écriture des requête non?

  14. #14
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Sorry, tu as raison !

    Toujours est-il que la relation qui existe entre ces deux tables, je ne la vois pas...

  15. #15
    Membre régulier Avatar de ChTiRiBi
    Inscrit en
    Mai 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 131
    Points : 79
    Points
    79
    Par défaut
    Il existe une clé étrangère dans la table articletemplate (ID) qui se référe au champ RefTemplate dans Article

  16. #16
    Membre régulier Avatar de ChTiRiBi
    Inscrit en
    Mai 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 131
    Points : 79
    Points
    79
    Par défaut
    c'est ce que vous voulez dire?

  17. #17
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    Non....

    Regardes la réponse de Simplifi, c'est de cela dont je te parle...

  18. #18
    Membre régulier Avatar de ChTiRiBi
    Inscrit en
    Mai 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 131
    Points : 79
    Points
    79
    Par défaut
    Il existe une jointure entre ces 2 tables, cette jointure regroupe RefTemplate de la table article et ID de la table articletemplate

  19. #19
    Membre expérimenté Avatar de bernardmichel
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2004
    Messages
    1 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 181
    Points : 1 591
    Points
    1 591
    Par défaut
    As-tu déjà essayé de lancer ta requête en omettant la partie
    & ToSQL(par_ID , "Number"
    pour voir son comportement ?

  20. #20
    Membre régulier Avatar de ChTiRiBi
    Inscrit en
    Mai 2008
    Messages
    131
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 131
    Points : 79
    Points
    79
    Par défaut
    j'ai essayé mais toujours le même résultat, la requête met trop de temps pour s'exécuter

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

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