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 :

Comment optimiser ma requête?


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Par défaut Comment optimiser ma requête?
    Bonjour,

    je rencontre actuellement un temps de reponse trop long sur mon appli web, et lorsque j'execute cette même requete directement en base, le temps de reponse est trop malgré une recherche restreinte à 1 enregistrement.
    Pourriez vous me dire ce que je pourrai faire pour optimiser ma requete ci-dessous et m'explique aussi le plan d'execution.

    merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    SELECT ext__0__0.RefTe1, ext__1.Pu_CodeSURF, ext.SolCrDt, ext__1.Pu_ID, ext.SolPu_ID_, 
    ext.SolCreID, ext__3__0.RefTe1, ext__3__1.EntID, ext__0.ActID, ext__3.PerID, 
    ext__3__1.EntCorpName, ext.SolID, ext__3.PerName, ext__0.ActName, ext__0.ActFstName, 
    ext__5.RefTe1, ext.SolPerId, ext__3.PerFstName, ext__3.PerEntId, ext__6.RefTe1 
    FROM Solicitation ext 
    LEFT OUTER JOIN Actor ext__0 on ext.SolCreID = ext__0.ActID 
    LEFT OUTER JOIN RefValues ext__0__0 on (ext__0.ActCivID = ext__0__0.RefID) 
    LEFT OUTER JOIN Purchase_ ext__1 on ext.SolPu_ID_ = ext__1.Pu_ID 
    LEFT OUTER JOIN Person ext__3 on ext.SolPerId = ext__3.PerID 
    LEFT OUTER JOIN RefValues ext__3__0 on (ext__3.PerCivID = ext__3__0.RefID) 
    LEFT OUTER JOIN Enterprise ext__3__1 on ext__3.PerEntId = ext__3__1.EntID 
    LEFT OUTER JOIN RefValues ext__5 on (ext.SolCanalID_ = ext__5.RefID) 
    LEFT OUTER JOIN RefValues ext__6 on (ext.SolMotiveID_ = ext__6.RefID) 
    LEFT OUTER JOIN Actor ext__8 on ext.SolActID = ext__8.ActID 
    LEFT OUTER JOIN RefValues ext__9 on (ext.SolPtyID = ext__9.RefID) 
    LEFT OUTER JOIN RefValues ext__10 on (ext.SolCatID = ext__10.RefID) 
    WHERE 
    ( (UPPER(ext__3.PerName) LIKE UPPER(N'chaunu%') and UPPER(ext__3.PerFstName) 
    LIKE UPPER(N'enzo%')) or  (UPPER(ext__3.PerName) LIKE UPPER(N'chaunu%') 
    and UPPER(ext__3.PerFstName) LIKE UPPER(N'% enzo%')) or  
    (UPPER(ext__3.PerName) LIKE UPPER(N'% chaunu%') and UPPER(ext__3.PerFstName) 
    LIKE UPPER(N'enzo%')) or  (UPPER(ext__3.PerName) LIKE UPPER(N'% chaunu%') 
    and UPPER(ext__3.PerFstName) LIKE UPPER(N'% enzo%'))) 
    ORDER BY ext.SolNextUpd ASC,ext__8.ActCode ASC,ext__9.RefTe1 ASC,ext__10.RefTe1 ASC

  2. #2
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Telle que présentée ta requête est quand même assez indigeste. Ne pourrais-tu pas mieux l'indenter ?

    Quelques pistes :
    • Faut-il nécessairement des LEFT OUTER JOIN ?
    • Faut-il nécessairement faire des recherches avec des wildcards (%) ?

  3. #3
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Autre question : quelle est la collation de tes colonnes ?

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2005
    Messages
    161
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 161
    Par défaut
    c'est quoi que tu appelles " collation" ?

  5. #5
    Membre Expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 797
    Par défaut
    Une toute petite recherche sur le forum ne serait pas déplacée... Voir aussi les articles de SQLPro.

  6. #6
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573

Discussions similaires

  1. [MySQL-5.1] Comment optimiser ma requête
    Par Rohan21 dans le forum Requêtes
    Réponses: 2
    Dernier message: 27/12/2013, 17h35
  2. Réponses: 3
    Dernier message: 10/10/2013, 11h47
  3. [MySQL] Comment optimiser cette requête ?
    Par AyManoVic dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/08/2010, 00h44
  4. Comment optimiser cette requête?
    Par Nympheasi dans le forum Requêtes
    Réponses: 10
    Dernier message: 05/10/2009, 03h51
  5. [CF][C#] Comment optimiser mes requêtes avec SqlCE ?
    Par david71 dans le forum Windows Mobile
    Réponses: 10
    Dernier message: 20/01/2006, 14h48

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