web-dev-qa-db-fra.com

Aperçu rapide de la quantité RAM allouée à SQL Server?

Avec SQL Server 2005, vous pouvez consulter le Gestionnaire des tâches et, au moins, obtenir un aperçu rapide de la quantité de mémoire allouée à SQL Server.

Avec SQL Server 2008, le Working Set ou Commit Size ne dépasse jamais vraiment 500 Mo, même si le compteur de performances SQLServer: Memory Manager/Total Server Memory (KB) indique 16 732 760.

Existe-t-il un paramètre où il affichera réellement la mémoire du serveur dans le Gestionnaire des tâches? Ou est-ce le résultat de leur modification de l'utilisation de la mémoire dans SQL Server

15
AngryHacker

Vous ne pouvez JAMAIS, JAMAIS faire confiance au Gestionnaire des tâches pour vous dire combien de mémoire SQL Server utilise (peut-être vous souvenez-vous d'un système 32 bits avec une très petite quantité de mémoire). Arrêtez d'utiliser le Gestionnaire des tâches pour cela, point. Utilisez le compteur de performances - vous pouvez également interroger le compteur de performances à l'aide de DMV:

SELECT object_name, cntr_value 
  FROM sys.dm_os_performance_counters
  WHERE counter_name = 'Total Server Memory (KB)';

Vous pouvez l'enregistrer en tant que raccourci de requête dans Outils> Options> Environnement> Clavier> Raccourcis de requête et obtenir des résultats précis dans une fenêtre de requête beaucoup plus rapidement que d'obtenir des résultats inexacts du Gestionnaire des tâches.

Vous pouvez également vérifier la pression de la mémoire (et si vous pouvez y remédier) en utilisant ces requêtes:

SELECT object_name, cntr_value
  FROM sys.dm_os_performance_counters
  WHERE counter_name IN ('Total Server Memory (KB)', 'Target Server Memory (KB)');

-- SQL Server 2012:
SELECT physical_memory_kb FROM sys.dm_os_sys_info;

-- Prior versions:
SELECT physical_memory_in_bytes FROM sys.dm_os_sys_info;

EXEC sp_configure 'max server memory';
26
Aaron Bertrand

@ La réponse d'AaronBertrand est excellente. Voici une variation avec un peu plus d'informations de ici

SELECT
(physical_memory_in_use_kb/1024) AS Memory_usedby_Sqlserver_MB,
(locked_page_allocations_kb/1024) AS Locked_pages_used_Sqlserver_MB,
(total_virtual_address_space_kb/1024) AS Total_VAS_in_MB,
process_physical_memory_low,
process_virtual_memory_low
FROM sys.dm_os_process_memory;

Un bon article de blog explique également pourquoi TaskManager n'est pas à la hauteur de la tâche ici .

Et pour plus de performances et de magie DMV, vous ne pouvez pas aller au-delà Blog SQL Performance de Glenn Berry

6
Rory