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 :

[SQL2K]CPU à 100%


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut [SQL2K]CPU à 100%
    Bonjour à tous.
    Pour ma toute première question, je vais avoir besoin d'un petit coup de main

    Je vous explique mon problème :
    J'ai une base de données SQL server 2000 qui a 2 ans et qui n'a jamais eu de maintenance.
    Il y'a environ 150 tables et des centaines de milliers d'enregistrements. C'est un CMS avec des centaines d'utilisateurs en simultané.
    La machine est un p4 2.8 ghz avec 2 go de rams. L’utilisation du CPU est catastrophique par SQL serveur, presque les 100% !!

    J'ai parcouru ce site et bien d'autre, j'ai lu l'article sur l'optimisation (http://rudi.developpez.com/sqlserver.../optimisation/) ainsi que le conseil pour améliorer la performance (http://sqlserver.developpez.com/faq/...formance#Perf1).
    De plus, grâce à la recherche dans le forum, j'ai trouvé aussi INDEXDEFRAG et DBREINDEX. (http://www.developpez.net/forums/sho...t=OPTIMISATION)

    J'aimerai donc savoir ce que vous me conseillez de faire en premier et ainsi de suite afin d'obtenir une base plus propre et surtout qui consomme moins de ressources.

    Merci d'avance.


    Yohann

  2. #2
    Membre émérite
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Par défaut
    la première chose à faire d'après moi c'est de réduire tes fichiers de log :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBCC SHRINKFILE(tabase_log)
    Pour utiliser la faq que j'ai crée (http://sqlserver.developpez.com/faq/...formance#Perf1), il te faut d'abord creer des index

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    Merci de ta réponse.
    En créant les indexs et en utilisant la reindexation on a obtenu un bon gain de performance sur une base de test.
    Par contre, il n'y a eu aucun changement dû à ta commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBCC SHRINKFILE(tabase_log)
    Surement quelqu'un avait déjà vidé les logs.

    Que faire désormais d'après vous ?

  4. #4
    Membre chevronné
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Par défaut
    Citation Envoyé par Overkill06
    Merci de ta réponse.
    En créant les indexs et en utilisant la reindexation on a obtenu un bon gain de performance sur une base de test.
    Par contre, il n'y a eu aucun changement dû à ta commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBCC SHRINKFILE(tabase_log)
    Surement quelqu'un avait déjà vidé les logs.

    Que faire désormais d'après vous ?
    fais le manuellement :
    • détache ta base de donnée depuis l'entreprise manager (bouton droit, toute les taches, ...)
    • renomme le fichier log de ta base en allant le chercher via l'explorateur (pour ne pas le perdre on sait jamais)
    • attache de nouveau ta base, il va te créer un nouveau fichier log vide

  5. #5
    Membre chevronné
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Par défaut
    en fait la CPU atteint 100% en lançant des requêtes sur la base ou juste en ouvrant l'entreprise manager, en affichant une table, ... ?

    c'est peut être les requêtes qui sont mal faites (suivre le plan d'exécution et aussi le générateur de profils sql)

  6. #6
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    Le CPU à 100% arrive lorsqu'il y'a trop de requêtes en simultané.
    La plupart des requêtes (je dis la plupart car c'est durement vérifiable) respectent des règles précises d'optimisation
    « Optimisation des SGBDR et du SQL » par Frédéric BROUARD (http://www.developpez.com)
    « SQL Server DO's and DONT's » By Daniel Turini (http://www.codeproject.com/cs/database/sqldodont.asp)

  7. #7
    Membre chevronné
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Par défaut
    oui le fait d'avoir trop de requêtes en simultané peux causer des problèmes de perfeormances !
    je ne connais pas exactement l'environnement pour lancer ces requêttes mais j'imagine que c'est une application qui le fasse, il faudra alors minimiser le nombre de requête en simultané (au lieu d'avoir n requêtes qui ramène chacune 1 enregistrement, essayer d'avoir 1 requête qui ramène n enregistrements)
    et comme je t'ai dis, essai de voir l'évolution de tes requêtes avec le générateur de requêtes, peut être qu'il y en a une seule qui bouffe toute la mémoire ...
    je pense qu'il te faut du temps !

    Edit : exemple de problèmes à voir qui peut causer une lenteur et des ressources, tu as une table avec des index bien fais et tu vas insérer un grand nombre de données, ceci cause un ralentissement et des ressources, il faudra ajouter les données ensuite créer les index pour faire aprés le select ...

  8. #8
    Membre habitué
    Inscrit en
    Janvier 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 10
    Par défaut
    Effectivement une requête est extrêmement gourmande.
    Je vais mener l'enquête
    Par contre pour ceux qui liront ce topic, je conseille aussi de suivre les conseils de ce site pour gagner un petit peu en performance: (Defrag de l'index)
    http://www.knowdotnet.com/articles/dbccindexdefrag.html

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

Discussions similaires

  1. Consomation CPU 100%
    Par Ines102006 dans le forum Oracle
    Réponses: 10
    Dernier message: 27/12/2006, 17h55
  2. [Hardware]PC s'éteint tout seul quand CPU 100%
    Par gojira dans le forum Composants
    Réponses: 18
    Dernier message: 03/08/2006, 10h49
  3. Grille OnDrawCell CPU 100%
    Par diam's dans le forum Composants VCL
    Réponses: 11
    Dernier message: 27/02/2006, 18h06
  4. [Eclipse 3.1 et WTP 0.7M5] Utilisation du CPU à 100%
    Par stanislas dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 09/07/2005, 23h21
  5. [WSAD] pb de lenteur et CPU à 100%
    Par triphop17 dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 27/10/2004, 14h05

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