Condividi tramite


Monitoraggio dell'utilizzo della memoria

Monitorare un'istanza di SQL Server periodicamente per verificare che l'utilizzo della memoria si trova all'interno di intervalli tipici.

Per monitorare la quantità di memoria disponibile, usare i seguenti contatori:

  • Memoria: Byte disponibili

  • Memoria: Pagine/sec

Il contatore Byte disponibili indica il numero di byte di memoria disponibili per i processi. Il contatore Pagine/sec indica il numero di pagine richiamate dal disco o scritte su disco per liberare spazio nel set di lavoro in seguito a errori di pagina.

Valori bassi del contatore Byte disponibili possono indicare una quantità di memoria insufficiente nel computer o la presenza di un'applicazione che non rilascia la memoria. Un valore elevato del contatore Pagine/sec può indicare un paging eccessivo. Monitorare il contatore Memoria: Errori di pagina/sec per assicurarsi che l'attività del disco non sia dovuta al paging.

Anche nei computer con una notevole quantità di memoria disponibile, la frequenza di paging, e quindi di errori di pagina, dovrebbe essere bassa. Microsoft Windows Virtual Memory Manager (VMM) accetta pagine da SQL Server e altri processi mentre taglia le dimensioni del set di lavoro di tali processi. L'attività di VMM tende quindi a causare errori di pagina. Per determinare se SQL Server o un altro processo è la causa di un paging eccessivo, monitorare il contatore Process: Page Faults/sec per l'istanza del processo SQL Server.

Per altre informazioni su come evitare il paging eccessivo, vedere la documentazione del sistema operativo Windows.

Memoria usata da SQL Server

Per impostazione predefinita, SQL Server modifica dinamicamente i requisiti di memoria, sulla base delle risorse di sistema disponibili. Se SQL Server richiede più memoria, esegue una query sul sistema operativo per determinare se la memoria fisica disponibile è disponibile e usa la memoria disponibile. Se SQL Server non necessita della memoria attualmente allocata, rilascia la memoria al sistema operativo. È tuttavia possibile ignorare l'opzione per l'uso dinamico della memoria specificando le opzioni di configurazione del server minservermemorye maxservermemory . Per altre informazioni, vedere Opzioni per la memoria server.

Per monitorare la quantità di memoria usata SQL Server, esaminare i contatori delle prestazioni seguenti:

  • Processo: Working set

  • SQL Server: Gestione buffer: Percentuale riscontri cache del buffer

  • SQL Server: Gestione buffer: Pagine di database

  • SQL Server: Gestione memoria: Memoria totale server (KB)

Il contatore Working set indica la quantità di memoria usata da un processo. Se questo numero è coerentemente inferiore alla quantità di memoria impostata dalle opzioni min server memory e max server memory server, SQL Server è configurato per usare troppo memoria.

Il contatore Percentuale riscontri cache del buffer è specifico per un'applicazione. È tuttavia preferibile un livello pari o superiore a 90%. Aggiungere memoria fino a raggiungere un valore costantemente superiore a 90%. Tale percentuale indica che è stato soddisfatto oltre il 90% di tutte le richieste di dati dalla cache dei dati.

Se il valore del contatore Memoria totale server (KB)Memoria è costantemente elevato rispetto alla quantità di memoria fisica del computer, può essere necessario aggiungere ulteriore memoria.

Determinazione dell'allocazione di memoria corrente

La query seguente restituisce le informazioni sulla memoria attualmente allocata.

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;