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

MS SQL Server Discussion :

procédure stockée parfois rapide, parfois lente


Sujet :

MS SQL Server

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Points : 1
    Points
    1
    Par défaut procédure stockée parfois rapide, parfois lente
    Bonjour,

    chaque jour j'exécute une procédure stockée (via un job sql) à 7h00 du matin, heure à laquelle il n'y a pas d'activité sur le serveur sql.

    Mon problème est que je constate des écarts de temps d'exécution très important. En effet le temps normal constaté est d'environ 1h00, mais quelques fois cela varie entre 6 et 7h00 !!

    Comment puis analyser l'exécution de ma procédure stockée, des verrous, etc... pour déterminer la cause de cette lenteur ?

    Merci d'avance de votre contribution

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    L'idéal est de coller ton code dans le Query analyser et de faire ce qui suit avant de lancer ta requêtte :

    CTRL + L, qui te donne le plan d'exécution estimé.
    CTRL + K, pour vérifier les indexs.

    Ce problème peutr avoir plusieurs origines...

    As tu regardé ton journal des transactions ? Es tu sur d'avoir des indexs où c'est nécessaire ? As tu vraiment bien optimisé ton code ?

    Bref j'espère que ca pourra t'aider.

    Bon courage

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    merci de ta réponse...

    mon soucis est que je ne sais pas analyser le plan d'exécution...
    Pour les indexs, oui ils sont bons.

    Ce que je ne comprends pas, c'est que le volume à traiter est quasi identique, que personne n'est connecté à cette heure et que le temps d'exécution peut passer de 1 à 7 heures de traitement.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    Le journal des transactions n'est il pas full ?

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    le journal des transactions est à croissance auto, non limitée.

    Par contre il peut être assez plein, je le truncate après cette procédure stockée. Je peux éventuellement le faire avant ?

    je pensais lancer une trace (profils sql) pour analyser ce qui se passe... quels seraient les champs à tracer pour que ce soit pertinent ?

    Merci d'avance

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    Il n'est pas conseillé de laisser un journal en croissance auto. Regarde mais je mise une cacahuète qu'il atteint 1/3 de ton espace disque et à partir de ce moment, ca devient n'importe quoi dans la base.

    En fait il faut faire un backup avant le début de ton traitement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    backup log tabase with truncate_only
    J'ai eu le même soucis il n'y a pas longtemps. Une grosse procédure qui au final me remplissait le journal et les temps d'exécution de la dite procédure étaient variables ...

    Regarde donc de ce coté et tiens nous au jus.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    merci de ta réponse.

    je viens de modifier le job et j'ai mis le backup des journaux avant l'exécution de la fameuse procédure stockée.

    Je viendrais poster dans quelques jours pour voir si cela a résolu mon pb.

    Merci encore !

    Pour info tu es dba ?

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    De rien !

    Non je suis pas dba, ca fait quelques mois que je bosse sur SQL SERVER par contre.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    ok... je commence aussi à me plonger dans les perfs !!

    A+

  10. #10
    Expert confirmé
    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
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Pour ça, une bonne adresse: mon article
    http://rudi.developpez.com/sqlserver.../optimisation/

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    Super intéressant ton article Rudlib !

    Sinon marcouchi, des résultats sur les modifs ?

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 182
    Points : 110
    Points
    110
    Par défaut
    pfff le TAG, j'adore ça moi

Discussions similaires

  1. Batch T-SQL plus rapide que procédure stockée
    Par dens19 dans le forum Développement
    Réponses: 3
    Dernier message: 15/01/2010, 10h49
  2. Réponses: 2
    Dernier message: 16/12/2009, 18h14
  3. Procédure stockée lente..lente..lente..
    Par Bizoo dans le forum PL/SQL
    Réponses: 17
    Dernier message: 09/07/2008, 08h28
  4. Procédure stockées en java très lente
    Par jproto dans le forum SQL
    Réponses: 3
    Dernier message: 22/05/2008, 13h31
  5. [SQL Server] Le + rapide : 1 vue ou 1 procédure stockée ?
    Par Ekimasu dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/02/2006, 19h13

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