Dai un'occhiata a quanta RAM è allocata a SQL Server?


15

Con SQL Server 2005, è possibile esaminare Task Manager e, almeno, dare una rapida occhiata alla quantità di memoria allocata a SQL Server.

Con SQL Server 2008, il Working Set o Commit Size non superano mai i 500 MB, anche se il contatore perf SQL Server: Memory Manager / Total Server Memory (KB) indica 16.732.760.

C'è un'impostazione in cui mostrerà effettivamente la memoria del server in Task Manager? O è il risultato del loro cambiamento nel modo in cui viene utilizzata la memoria in SQL Server

Risposte:


25

Non puoi MAI, MAI fidarti di Task Manager per dirti quanta memoria utilizza SQL Server (forse stai ricordando un sistema a 32 bit con una quantità molto piccola di memoria). Smetti di usare Task Manager per questo, punto. Utilizza il contatore delle prestazioni: puoi anche eseguire una query sul contatore delle prestazioni utilizzando i DMV:

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

Puoi salvarlo come scorciatoia di query in Strumenti> Opzioni> Ambiente> Tastiera> Scorciatoie di query e ottenere risultati accurati in una finestra di query molto più velocemente rispetto a ottenere risultati imprecisi da Task Manager.

Puoi anche verificare la pressione della memoria (e se puoi fare qualcosa al riguardo) usando queste query:

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';

EXEC sp_configure 'max server memory';inoltre non esiste in SQL 2008.
AngryHacker

@AngryHacker Certo che lo fa (si chiama max server memory (MB)ma non è necessario digitare il tutto). Per vederlo, devi leggere il messaggio di errore che ti dice che è un'opzione avanzata e quindi sp_configure 'show adv', 1; reconfigure with override;. Nota che non devi nemmeno digitare tutto 'show advanced options'qui.
Aaron Bertrand

6

La risposta di AaronBertrand è fantastica. Ecco una variante con un po 'più di informazioni da qui

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;

Anche un buon post sul blog sul perché TaskManager non è all'altezza dell'attività qui .

E per maggiori prestazioni e magia DMV non puoi andare oltre il blog SQL Performance di Glenn Berry

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.