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 MySQL Discussion :

Ralentissement avec Vue = union de 3 vues


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Profil pro
    Developpeur
    Inscrit en
    Septembre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Septembre 2004
    Messages : 114
    Points : 43
    Points
    43
    Par défaut Ralentissement avec Vue = union de 3 vues
    Bonsoir,

    J'ai un véritable problème avec mysql. Lorsque j'effectue ma requête qui constitue ma vue générale, la requête s'effectue en 0,3s :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM egrc2_fmi.v_entity_competences_applicatives UNION SELECT * FROM v_entity_competences_communes UNION SELECT * FROM v_entity_competences_metiers;
    Cependant dès que je l'inclue au sein d'une vue et que je l'execute, je dépasse les 3 secondes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE VIEW maview AS SELECT * FROM egrc2_fmi.v_entity_competences_applicatives UNION SELECT * FROM v_entity_competences_communes UNION SELECT * FROM v_entity_competences_metiers;
    D'où pourrais venir le problème ?

    Merci d'avance pour vos pistes

    Louis

  2. #2
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Il faudrait analyser ça avec EXPLAIN SELECT.

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 285
    Points : 11 740
    Points
    11 740
    Par défaut
    qu'est-ce que ça donne si tu essaies comme ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE ALGORITHM=MERGE VIEW maview 
    AS 
    SELECT * FROM egrc2_fmi.v_entity_competences_applicatives 
    UNION 
    SELECT * FROM v_entity_competences_communes 
    UNION 
    SELECT * FROM v_entity_competences_metiers;

  4. #4
    Membre du Club
    Profil pro
    Developpeur
    Inscrit en
    Septembre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Septembre 2004
    Messages : 114
    Points : 43
    Points
    43
    Par défaut
    Bonjour,

    Je m'excuse pour le retard concernant la réponse, ce problème m'est sorti du crâne.
    Je viens de tester l'algorithme, cela améliore le temps de réponse (de 19 à 13secondes). Entre temps je me suis rendu compte que lorsque l'on crée une vue à l'aide d'autres vues mysql n'utilise plus les index des vues de base.

    Il n'existerait pas une solution pour cela ?

    Merci d'avance

    Louis

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 285
    Points : 11 740
    Points
    11 740
    Par défaut
    Si tu passes toutes les vues en MERGE, ça devrait permettre de récupérer les index... ceci dit, je ne suis pas sûr que MySQL sache utiliser des index sur une UNION.

Discussions similaires

  1. Créer une vue avec un UNION ALL
    Par Geoffrey49000 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 04/10/2011, 22h58
  2. [SP2010] Récupérer uniquement la liste avec les champs d'une vue
    Par Joffrey Kern dans le forum Développement Sharepoint
    Réponses: 2
    Dernier message: 01/07/2011, 11h29
  3. Union d'une vue utilisant aussi l'union
    Par lavazavio dans le forum Langage SQL
    Réponses: 0
    Dernier message: 03/06/2009, 17h58
  4. [MySQL] Mise à jour avec une condition sur une vue
    Par thor76160 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 02/03/2009, 02h00
  5. Union dans une vue
    Par B-Pascal dans le forum Requêtes
    Réponses: 2
    Dernier message: 14/12/2007, 17h27

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