Monitoraggio dell'utilizzo della memoriaMonitor Memory Usage

Monitorare periodicamente un'istanza di SQL ServerSQL Server per verificare che l'utilizzo della memoria rientri negli intervalli standard.Monitor an instance of SQL ServerSQL Server periodically to confirm that memory usage is within typical ranges.

Per monitorare la quantità di memoria disponibile, usare i seguenti contatori:To monitor for a low-memory condition, use the following object counters:

  • Memoria: Byte disponibiliMemory: Available Bytes

  • Memoria: Pagine/secMemory: Pages/sec

    Il contatore Byte disponibili indica il numero di byte di memoria disponibili per i processi.The Available Bytes counter indicates how many bytes of memory are currently available for use by processes. 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.The Pages/sec counter indicates the number of pages that either were retrieved from disk due to hard page faults or written to disk to free space in the working set due to page faults.

    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.Low values for the Available Bytes counter can indicate that there is an overall shortage of memory on the computer or that an application is not releasing memory. Un valore elevato del contatore Pagine/sec può indicare un paging eccessivo.A high rate for the Pages/sec counter could indicate excessive paging. Monitorare il contatore Memoria: Errori di pagina/sec per assicurarsi che l'attività del disco non sia dovuta al paging.Monitor the Memory: Page Faults/sec counter to make sure that the disk activity is not caused by paging.

    Anche nei computer con una notevole quantità di memoria disponibile, la frequenza di paging, e quindi di errori di pagina, dovrebbe essere bassa.A low rate of paging (and hence page faults) is typical, even if the computer has plenty of available memory. Microsoft Windows Virtual Memory Manager (VMM) sottrae pagine a SQL ServerSQL Server e agli altri processi in quanto riduce le dimensioni dei set di lavoro di tali processi.The Microsoft Windows Virtual Memory Manager (VMM) takes pages from SQL ServerSQL Server and other processes as it trims the working-set sizes of those processes. L'attività di VMM tende quindi a causare errori di pagina.This VMM activity tends to cause page faults. Per determinare se SQL ServerSQL Server o un altro processo provoca un paging eccessivo, monitorare il contatore Processo: Errori di pagina/sec alla ricerca dell'istanza del processo SQL ServerSQL Server .To determine whether SQL ServerSQL Server or another process is the cause of excessive paging, monitor the Process: Page Faults/sec counter for the SQL ServerSQL Server process instance.

    Per altre informazioni su come evitare il paging eccessivo, vedere la documentazione del sistema operativo Windows.For more information about resolving excessive paging, see the Windows operating system documentation.

Memoria usata da SQL ServerIsolating Memory Used by SQL Server

Per impostazione predefinita, in SQL ServerSQL Server i requisiti di memoria vengono modificati in modo dinamico in base alle risorse di sistema disponibili.By default, SQL ServerSQL Server changes its memory requirements dynamically, on the basis of available system resources. Se SQL ServerSQL Server necessita di una maggior quantità di memoria, richiede al sistema operativo di determinare se è disponibile memoria fisica e utilizza la memoria disponibile.If SQL ServerSQL Server needs more memory, it queries the operating system to determine whether free physical memory is available and uses the available memory. Se SQL ServerSQL Server non utilizza completamente la memoria attualmente allocata, rilascia la memoria al sistema operativo.If SQL ServerSQL Server does not need the memory currently allocated to it, it releases the memory to the operating system. È tuttavia possibile ignorare l'opzione per l'uso dinamico della memoria specificando le opzioni di configurazione del server minservermemorye maxservermemory .However, you can override the option to dynamically use memory by using the minservermemory, and maxservermemory server configuration options. Per altre informazioni, vedere Opzioni per la memoria server.For more information, see Server Memory Options.

Per monitorare la quantità di memoria usata da SQL ServerSQL Server , esaminare i contatori delle prestazioni seguenti:To monitor the amount of memory that SQL ServerSQL Server uses, examine the following performance counters:

  • Processo: Working setProcess: Working Set

  • SQL Server: Gestione buffer: Percentuale riscontri cache bufferSQL Server: Buffer Manager: Buffer Cache Hit Ratio

  • SQL Server: Gestione buffer: Pagine databaseSQL Server: Buffer Manager: Database Pages

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

    Il contatore Working set indica la quantità di memoria usata da un processo.The WorkingSet counter shows the amount of memory that is used by a process. Se questo valore è costantemente inferiore alla quantità di memoria impostata dalle opzioni server min server memory e max server memory , SQL ServerSQL Server è stato configurato per usare una quantità eccessiva di memoria.If this number is consistently below the amount of memory that is set by the min server memory and max server memory server options, SQL ServerSQL Server is configured to use too much memory.

    Il contatore Percentuale riscontri cache del buffer è specifico per un'applicazione.The Buffer Cache Hit Ratio counter is specific to an application. È tuttavia preferibile un livello pari o superiore a 90%.However, a rate of 90 percent or higher is desirable. Aggiungere memoria fino a raggiungere un valore costantemente superiore a 90%.Add more memory until the value is consistently greater than 90 percent. Tale percentuale indica che è stato soddisfatto oltre il 90% di tutte le richieste di dati dalla cache dei dati.A value greater than 90 percent indicates that more than 90 percent of all requests for data were satisfied from the data cache.

    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.If the TotalServerMemory (KB) counter is consistently high compared to the amount of physical memory in the computer, it may indicate that more memory is required.

Determinazione dell'allocazione di memoria correnteDetermining Current Memory Allocation

La query seguente restituisce le informazioni sulla memoria attualmente allocata.The following query returns information about currently allocated memory.

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;