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éveloppement SQL Server Discussion :

Requête rapide avec un order by, lente si on l'enlève.


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2014
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 199
    Points : 70
    Points
    70
    Par défaut Requête rapide avec un order by, lente si on l'enlève.
    Bonjour,

    j'ai la requète suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    select   coalesce(libelle,'') as chatri, vue.trigramme as trigramme_dest,vue.id as id_dest,vue.trigramme,vue.id,vue.id_type_objet,1 as nbre_dest,vue.[cle],vue.[id_utilisateur],[id_suivi],vue.[dcr],vue.[dmo],adresse_direct,[adresse_long],[adresse_court],[geo_latitude],[geo_longitude],[geo_matchcode],[geo_confidence],[email],[emadir],[telephone],[teldir],[mobile],[mobdir],[site],[sitedir],[nbre_envoi],[nbre_vue],[nbre_click],[taux_vue],[taux_click],[taux_reactivite],derniere_date_vue,derniere_date_click,coalesce(vue.[libelle],'') as libelle,[isole],[fonction],[id_str],[id_con],[list_id_rappel_detail_element],ext_photo_str,ext_photo_con,0 as doublon,groupe_dcr  
    from (select * from (select vue.*,list_id_rappel_detail_element from (select * from fnc_moteur_recherche_str_sans()
     UNION ALL 
    select * from fnc_moteur_recherche_con_sans()
     UNION ALL 
    select * from fnc_moteur_recherche_stc_sans()) as vue LEFT OUTER JOIN vue_rappel_detail2 ON vue.id=vue_rappel_detail2.id and vue.id_type_objet=vue_rappel_detail2.id_type_objet) as vue) as vue  INNER JOIN (select vue.id,vue.id_type_objet from (select * from (select * from fnc_moteur_recherche_str_sans()
     UNION ALL 
    select * from fnc_moteur_recherche_con_sans()
     UNION ALL 
    select * from fnc_moteur_recherche_stc_sans()) as vue) as vue  INNER JOIN (select distinct id,id_type_objet from (select vue.id,vue.id_type_objet from (select id_structure as id,1 as id_type_objet from structures UNION ALL select id_contact as id,2 as id_type_objet from contact UNION ALL select id_strcon as id,3 as id_type_objet from structures_contact) as vue LEFT OUTER JOIN (select * from vue_champ_valeur_liste_multiple where id_champ_objet=31) as chpval ON vue.id=chpval.id AND vue.id_type_objet=chpval.id_type_objet where not chpval.id is null) as vue) as vueinner1 ON vue.id=vueinner1.id AND vue.id_type_objet=vueinner1.id_type_objet) as filtre ON vue.id=filtre.id and vue.id_type_objet=filtre.id_type_objet  where  ((vue.id_type_objet=3) or (vue.id_type_objet=2 and isole=1) or (vue.id_type_objet=1))
    order by chatri
    avec "order by chatri"', elle s'exécute en 1 à 2 secondes...

    Si j'enlève le "order by", la requète dure plus de deux minutes...

    Quelqu'un aurait t'il une piste sur ce qui expliquerais cette différence ?

    Par avance, merci
    Sylo

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2014
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2014
    Messages : 199
    Points : 70
    Points
    70
    Par défaut
    A priori, ce serait le distinct qui engendrerais cette lenteur...
    Je ne me l'explique pas.
    Merci
    Sylo

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Pourriez-vous capturer et partager le plan de requête ?

    @++

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/01/2012, 07h45
  2. Réponses: 8
    Dernier message: 12/08/2011, 13h53
  3. Requête rapide après une 1ere execution / très lente avant
    Par nc_dvlp dans le forum Administration
    Réponses: 5
    Dernier message: 03/06/2008, 18h29
  4. [Requête]Problème avec ORDER BY NZ
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/11/2006, 20h27
  5. Réponses: 5
    Dernier message: 10/07/2006, 12h05

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