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 :

temps execution requete UNION


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 174
    Points : 178
    Points
    178
    Par défaut temps execution requete UNION
    Bonjour,
    j'ai réalisé une requête UNION de 2 autres requêtes R1 et R2, qui elles-mêmes sont basées sur des requêtes.
    Jusqu'ici, R1 avait pour base une table T1, issue d'une requête création de table R3. Pour éviter la redondance d'information, j'ai supprimé T1, et utilisé dans R1 la requête R3 directement, sans créer T1.

    R1 et R2 séparément s'exécutent instantanément.
    Mais la requête R1 UNION R2 met plusieurs minutes à afficher le résultat. Pourquoi ? et comment résoudre ce petit inconvénient ? suis-je obligée de repasser par la 1ère solution, à savoir passer par la création d'une table ?

    Merci.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    salut,
    le pb avec UNION, c'est que tu dois te prendre un produit cartésien dans la tronche si les requêtes R1 et R2 te remontent plus d'1 résultat.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 174
    Points : 178
    Points
    178
    Par défaut
    salut,
    je ne pense pas que le pb vienne de là, puisque lorsque R1 était basée sur une table, alors UNION fonctionnait parfaitement. c'est le fait de baser R1 sur une requête qui ralentit UNION. (alors que R1 elle-même n'est pas ralentie).

    merci quand même

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    lol, donc tu as trouvé la réponse tout seul à ta question ^^
    mets un [Résolu] si c'est le cas

  5. #5
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 063
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 063
    Points : 24 668
    Points
    24 668
    Par défaut
    Apparement le fait de mettre l'UNION te fais perdre l'optimisation RUSHMORE. A moins que se ne soit le fait de baser ta requete sur une autre requête.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Points : 4 297
    Points
    4 297
    Par défaut
    union oblige access à vérifier les doublons (avec du temps)

    si aucun doublon n'est possible faire union all

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 174
    Points : 178
    Points
    178
    Par défaut
    merci de vos réponses... mais

    random
    union oblige access à vérifier les doublons (avec du temps)
    si aucun doublon n'est possible faire union all
    loufab Apparement le fait de mettre l'UNION te fais perdre l'optimisation RUSHMORE. A moins que se ne soit le fait de baser ta requete sur une autre requête.
    je pense que ce n'est pas l'UNION qui pose pb, puisque cette UNION fonctionne sur 2 requêtes basées sur des tables. C'est le fait de baser une des 2 requêtes sur une requête d'analyse croisée qui allonge le temps d'exécution de l'UNION. Auparavant, je créais une table de cette requête analyse croisée, et je basais R1 sur la table.

Discussions similaires

  1. probleme temps execution requete
    Par calitom dans le forum Requêtes
    Réponses: 2
    Dernier message: 09/06/2009, 19h36
  2. limiter temps d'execution requete pour protéger ma base
    Par crazykangourou dans le forum Oracle
    Réponses: 2
    Dernier message: 09/02/2007, 13h13
  3. [MFC] pb temps execution
    Par ricky78 dans le forum MFC
    Réponses: 4
    Dernier message: 21/01/2005, 11h50
  4. Temps execution mysql
    Par azman0101 dans le forum Requêtes
    Réponses: 3
    Dernier message: 16/07/2004, 09h42
  5. Créer une vue pour trier une requete UNION ?
    Par Etienne Bar dans le forum SQL
    Réponses: 3
    Dernier message: 03/01/2003, 20h22

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