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

15

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, l'ensemble de travail ou la taille de validation ne dépasse jamais vraiment 500 Mo, même si le compteur de performances SQLServer: Gestionnaire de mémoire / Mémoire totale du serveur (Ko) 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 la modification de l'utilisation de la mémoire dans SQL Server

AngryHacker
la source

Réponses:

25

Vous ne pouvez JAMAIS, JAMAIS faire confiance au Gestionnaire des tâches pour vous indiquer la quantité de mémoire utilisée par SQL Server (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';
Aaron Bertrand
la source
EXEC sp_configure 'max server memory';n'existe pas non plus dans SQL 2008.
AngryHacker
@AngryHacker Bien sûr (il s'appelle max server memory (MB)mais vous n'avez pas besoin de taper le tout). Pour le voir, vous devez lire le message d'erreur qui vous indique qu'il s'agit d'une option avancée, puis sp_configure 'show adv', 1; reconfigure with override;. Notez que vous n'avez pas besoin de taper tout 'show advanced options'ici non plus.
Aaron Bertrand
6

@ La réponse d'AaronBertrand est excellente. Voici une variation avec un peu plus d'informations d' 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 ici .

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

Rory
la source