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 éclairé
    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
    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
    22 021
    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 : 22 021
    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 +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre éclairé
    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
    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 : 267
Taille : 12,9 Ko
    Nom : Sans titre2.png
Affichages : 280
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
    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 éclairé
    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
    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 : 257
Taille : 7,6 Ko

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

  6. #6
    Expert confirmé
    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 : 47
    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
    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 éclairé
    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
    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
    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 éclairé
    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
    Par défaut
    Voici un autre élément de réponse peut être:

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

  10. #10
    Membre éclairé
    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
    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
    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 éclairé
    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
    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, 10h01
  2. Comment optimiser requête SQL avec création Index
    Par schumi101 dans le forum SQL
    Réponses: 25
    Dernier message: 11/12/2007, 22h28
  3. optimisation requête SQL
    Par marti dans le forum Oracle
    Réponses: 4
    Dernier message: 27/04/2006, 09h54
  4. Besoin d'aide pour optimiser requête SQL
    Par Keuf95 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 06/09/2005, 17h02
  5. optimisation requête SQL!!! help!!
    Par anathem62 dans le forum Requêtes
    Réponses: 2
    Dernier message: 24/05/2004, 17h26

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