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

Administration SQL Server Discussion :

Optimisation requête SQL [2016]


Sujet :

Administration SQL Server

  1. #1
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut Optimisation requête SQL
    Bonjour à tous,

    J'ai une table contenant deux champs un Id et un varchar(300).
    J'ai un index clustered sur ma PK qui a un bon taux de fragmentation.

    Je constate que lorsque je fais une requête uniquement pour récupérer l'Id celle-ci me retourne une réponse instantanée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select id from matable
    Lorsque je fais la même chose en prenant les deux champs, la requête mets plusieurs secondes à me retourner les résultats (70.000 lignes à peu près)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select id, description from matable
    J'imagine que le temps de réponse dépend principalement du volume de retour de données.

    Aussi est ce qu'il existe une méthode pour augmenter la taille des paquets sur une requête ?
    Quelles solutions me préconisez vous pour améliorer mes temps de réponse ?

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 899
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 899
    Points : 53 140
    Points
    53 140
    Billets dans le blog
    6
    Par défaut
    Sans la structure de la table, ni les index et pas les plans d'exécution, impossible de vous dire quoi que ce soit

    A +

  3. #3
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    Désolé du retard mais c'était les vacances !!
    Alors voici la structure de la table et des index.
    Malheuresement dans ma boutique on marche sur la tête, et je n'ai pas la possibilité d'afficher le plan d'exécution.

    Nom : Sans titre.png
Affichages : 237
Taille : 12,9 Ko
    Nom : Sans titre2.png
Affichages : 246
Taille : 5,5 Ko

  4. #4
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    êtes vous certain qu'il n'existe aucun autre index sur la table ?

    Car pour la première requête, n'importe quel index non cluster posé sur la table peut répondre, évitant ainsi les accès à la table.


    je n'ai pas la possibilité d'afficher le plan d'exécution
    Vous ne pouvez pas les obtenir, ou vous ne pouvez pas les publier sur une forum ?
    Avez vous accès au moins aux statistiques (SET STATISTICS IO , TIME ON)

  5. #5
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    non je n'avais pas les droits ... Mais le problème est résolu.
    Voici le plan:
    Nom : Sans titre.png
Affichages : 227
Taille : 7,6 Ko

    et voici le détail de la stat:
    index.txt

  6. #6
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Hello,

    Il nous faudrait le plan de la requête (à transposer avec ton contexte réel, nom de table, colonnes etc ...) de ta première requête



    Et de ta 2ème requête


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select id, description from matable

    Le plan d'exécution associé à ta requête SELECT * FROM matable n'a que peu d'intérêt.

    ++

  7. #7
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    Est ce que plan de requête = plan d'exécution ?
    sinon comment tu fais pour obtenir le plan de requête dans MSQL Manager ?

  8. #8
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par Pfeffer Voir le message
    Est ce que plan de requête = plan d'exécution ?
    oui

  9. #9
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    Voici un autre élément de réponse peut être:

    Pour la première requête:
    Nom : Sans titre2.png
Affichages : 277
Taille : 26,7 Ko
    Pour la seconde requête:
    Nom : Sans titre.png
Affichages : 295
Taille : 22,9 Ko

  10. #10
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    Dans ce cas au niveau des plans d'exécution j'ai exactement la même chose pour les 2 requêtes.
    Par contre au niveau des statistiques il y a du changement.

  11. #11
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    C'est donc bien le volume engendré par la colonne supplémentaire dans la requête 2 qui provoque cela : le client mais du temps à traiter ce volume. que comptez vous faire de toutes ces données ensuite ?

  12. #12
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    Derrière j'ai un process qui tourne, un peu compliqué à expliquer !!
    Par contre je me demandais, si j'augmente la taille des paquets sur l'instance, est ce que cela pourrait améliorer les performances ?
    Sinon existe t'il un moyen de compresser ce deuxième champs ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Optimisation requête SQL
    Par ludo00002 dans le forum SQL
    Réponses: 2
    Dernier message: 06/10/2008, 09h01
  2. Comment optimiser requête SQL avec création Index
    Par schumi101 dans le forum SQL
    Réponses: 25
    Dernier message: 11/12/2007, 21h28
  3. optimisation requête SQL
    Par marti dans le forum Oracle
    Réponses: 4
    Dernier message: 27/04/2006, 08h54
  4. Besoin d'aide pour optimiser requête SQL
    Par Keuf95 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 06/09/2005, 16h02
  5. optimisation requête SQL!!! help!!
    Par anathem62 dans le forum Requêtes
    Réponses: 2
    Dernier message: 24/05/2004, 16h26

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