Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

SQL Server non rilascia memoria dopo l'esecuzione della query

SQL Server è infatti progettato per richiedere quanta più RAM possibile che non verrà rilasciata a meno che questa memoria non sia esplicitamente richiesta dal sistema operativo. Penso che l'approccio migliore sia limitare la quantità di RAM che il server può utilizzare, il che consentirà al sistema operativo di avere una determinata quantità di risorse da utilizzare indipendentemente da cosa. Per impostare questo Come configurare le opzioni di memoria utilizzando SQL Server Management Studio :

Puoi anche farlo in T-SQL usando i seguenti comandi (esempio):

exec sp_configure 'max server memory', 1024
reconfigure

Per limitare il consumo a 1GB.

Nota:quanto sopra non limiterà tutti gli aspetti di SQL Server a quella quantità di memoria. Questo controlla solo il pool di buffer e la cache del piano di esecuzione. Cose come CLR, Full Text, la memoria effettiva utilizzata dai file .exe di SQL Server, SQL Agent, stored procedure estese e così via non sono controllate da questa impostazione. Tuttavia, queste altre cose in genere non richiedono tutta quella quantità di memoria, sono il pool di buffer e la cache del piano di esecuzione che richiedono la maggior parte della memoria.

Spero che questo aiuti.