Problème de lenteur : Opération "pompier"
Pour une opération "pompier" j'ai un serveur dédié SQL Server 2005 SP2.
OS = W2K3 SERVER R2 (US)
1 Disque C : espace libre 8 Go
1 Disque D : espace libre environ 17 Go
Mémoire = 4Go
Processeurs = (je ne me souviens plus exactement, je vais le confirmer demain matin)
Ce serveur SQL dialogue avec une application de gestion de centre d'appel.
Et depuis quelques jours des lenteurs inacceptables sont constatées par les utilisateurs de l'application... Je passe les détails...[je vous rassure, tout de suite que je n'ai pas participé à l'installation de ce serveur :) ]
Après un audit rapide je constate que :
1.) Les bases systèmes et les bases utilisateurs sont installées sur le même disque C. Les fichiers .mdf et .ldf sont tous sur le même disque C pour toutes les bases
ce que je pense faire :
-->déplacer les .mdf des bases utilisateurs sur le disque D
2.) Le processus sqlserver.exe utilise un mémoire max d'environ 1,7 Go (visible via le Task manager) et dans le boot.ini l'option /3GB n'est pas activé
ce que je pense faire :
-->Mettre /3GB dans le boot.ini
-->Configurer le max memory server size à 3Go côté SQL SERVER
-->Un redémarrage de l'OS est-il indispensable pour la prise en compte du paramétrage de /3GB dans le boot.ini ?
3.) L'utilisation CPU oscille entre 98% - 100 % (visible via le Task manager)
en exécutant cette requête
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| SELECT
spid
,hostname
,[status]
,blocked
,open_tran
,waittime
,cmd
,memusage
,cpu
,physical_io
,login_time
,last_batch
,loginame
,DB_NAME(DBID) AS [database]
,[program_name]
FROM master.sys.sysprocesses
WHERE spid > 50
AND spid <> @@SPID |
je constate qu'il y a une centaine de processus non blockés (colonnes blocked =0 et open_tran =0), mais qui sont dormant (colonne status = SLEEPING)
et dont la date de dernière exécution est environ 1 mois (colonne last_batch) sur les bases utilisateurs.Le détails de quelques un de ces processus montre des DELETE tableUtilisateur WHERE date = 'date_ILYA_1mois'
Je me demande :
-->Je me demande ce qu'il faut faire de ces processus dormant !!! dormant mais consomme quand même des ressources (memoire,cpu,io) !!!
4.) trois des principales bases ont l'option AUTO CLOSE à TRUE
ce que je pense faire :
--> les mettre à FALSE
5.) L'option page verify de toutes les bases Utilisateurs sont à TORN_PAGE_DETECTION
ce que je pense faire :
--> les mettre à CHECKSUM
6.) Pour toutes les bases le mode de récupération est à SIMPLE
--> je ne change pas
7.) La reverse engineering (à l'aide de Power AMC) d'une des principales base m'a montré :
--> 13 tables au total pour cette base
--> la principale table de cette base possède 132 colonnes
--> le MPD montre que toutes les tables sont indépendantes : aucune jointure entre les tables !!!
Ce n'est pas le plus urgent actuellemnt mais j'aimerais quand même avoir votre avis sur ce modèle de données
Merci d'avance