2010-02-21 4 views
3

Nous avons une application Web à haut volume basée sur ASP.NET 3.5 et SQL 2008, dans laquelle nous souhaitons maintenir des niveaux de haute disponibilité 24x7 sans nécessiter de fenêtre de maintenance. Au fil du temps, nous sommes devenus dépendants de certains process stockés qui effectuent des opérations de nettoyage pour purger les données qui ne sont plus nécessaires, compiler certaines métriques, etc. Notre problème est que ces sprocs consomment presque tout le CPU sur les serveurs pendant qu'ils sont en cours d'exécution entraînant un impact significatif sur la réactivité du site.Exécution d'un Sproc SQL Server 2008 à une priorité inférieure

Existe-t-il un moyen d'exécuter ces sprocs avec une priorité inférieure? Peu importe combien de temps ils prennent, tant que nous pouvons réduire l'impact sur le CPU du serveur de base de données.

Répondre

6

Vous pouvez utiliser Resource Governor pour spécifier des limites sur la quantité de CPU et de mémoire que les demandes d'applications entrantes peuvent utiliser.

BEGIN TRAN; 
-- Create a new resource pool and set a maximum CPU limit. 
CREATE RESOURCE POOL PoolAdhoc 
WITH (MAX_CPU_PERCENT = 50); 
-- Configure the workload group so it uses the new resource pool. 
-- The following statement moves 'GroupAdhoc' from the 'default' pool --- to 'PoolAdhoc' 
ALTER WORKLOAD GROUP GroupAdhoc 
USING PoolAdhoc; 
COMMIT TRAN; 
GO 
-- Apply the changes to the Resource Governor in-memory configuration. 
ALTER RESOURCE GOVERNOR RECONFIGURE; 
GO 
+1

Le gouverneur de ressources est-il ancien pour SQL Server 2008? – smaclell