2012-02-21 6 views
0

J'ai un serveur avec 32 Go de RAM et un processeur Intel Xeon (2 processeurs à 2,4 GHz). SQL Server 2008 est exécuté avec 3 ou 4 bases de données. Le problème est que le processeur et la mémoire ont fonctionné à pleine capacité et j'ai d'abord pensé qu'il s'agissait d'applications multithread que j'utilisais via Visual Studio, mais après leur fermeture, rien n'a changé. Quelqu'un m'a suggéré de faire des tests de performance en SQL mais je ne suis pas sûr que cela puisse donner les réponses dont j'ai besoin. J'ai regardé le moniteur d'activité et je peux voir quelles sont les requêtes coûteuses etc. mais ma question est de savoir si celles-ci sont suffisantes. Je dois présenter à mes statistiques de plomb sur ce qui provoque la pointe dans le processeur et la mémoire et est les résultats du moniteur d'activité assez ou dois-je utiliser le profileur SQL Server et exécuter des traces. Toutes les suggestions ont apprécié.Test des bases de données SQL Server 2008

+1

Je ne peux pas parler pour l'utilisation du processeur, mais SQL Server est conçu pour être gourmand en mémoire - il est * devrait * à consommer presque tous, puisqu'il est conçu pour vivre sur un serveur en lui-même. –

Répondre

1

J'utilise la requête suivante pour trouver les requêtes les plus chères sur mon serveur - à l'origine de here.

J'espère que ça aide!

SELECT DISTINCT TOP 10 t.TEXT QueryName, 
         s.execution_count AS ExecutionCount, 
         s.max_elapsed_time AS MaxElapsedTime, 
         Isnull(s.total_elapsed_time/s.execution_count, 0) AS AvgElapsedTime, 
         s.creation_time AS LogCreatedOn, 
         Isnull(s.execution_count/Datediff(s, s.creation_time, Getdate()), 0) AS FrequencyPerSec 
FROM sys.dm_exec_query_stats s 
     CROSS APPLY sys.Dm_exec_sql_text(s.sql_handle) t 
ORDER BY s.max_elapsed_time DESC 
+0

merci .. a été surpris par les résultats, est-ce basé sur les requêtes qui prennent le plus de temps et ce qui est exactement le nombre d'exécution – vbNewbie

+0

la raison pour laquelle je demande est parce que j'ai deux requêtes là-bas deux fois par jour et je ne vois pas l'une des requêtes d'insertion dans la liste – vbNewbie

+0

Oui, il est trié par le temps qu'ils prennent en descendant. Le nombre d'exécution est le nombre de fois que la requête a été exécutée! En ce qui concerne le site auquel je me suis connecté (d'où la requête provient de l'origine), vous pouvez réinitialiser tous les compteurs et lancer une nouvelle journalisation en exécutant: 'DBCC FREEPROCCACHE'. Toutes les requêtes ne sont pas mentionnées bien sûr - ce n'est que le top 10. Vous pouvez remplacer la clause "TOP 10" par une autre, ou la supprimer complètement si vous souhaitez voir toutes les requêtes. – Bridge

Questions connexes