Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server ne libère pas de mémoire après l'exécution de la requête

SQL Server est en effet conçu pour demander le plus de RAM possible qui ne sera libérée que si cette mémoire est explicitement requise par le système d'exploitation. Je pense que la meilleure approche consiste à limiter la quantité de RAM que le serveur peut utiliser, ce qui permettra au système d'exploitation d'avoir une quantité définie de ressources à utiliser quoi qu'il arrive. Pour définir ceci Comment configurer les options de mémoire à l'aide de SQL Server Management Studio :

Vous pouvez également le faire dans T-SQL à l'aide des commandes suivantes (exemple) :

exec sp_configure 'max server memory', 1024
reconfigure

Pour limiter la consommation à 1 Go.

Remarque :ce qui précède ne limitera pas tous les aspects de SQL Server à cette quantité de mémoire. Cela contrôle uniquement le pool de mémoire tampon et le cache du plan d'exécution. Des éléments tels que CLR, le texte intégral, la mémoire réelle utilisée par les fichiers .exe de SQL Server, l'agent SQL, les procédures stockées étendues, etc. ne sont pas contrôlés par ce paramètre. Cependant, ces autres éléments n'ont généralement pas besoin de beaucoup de mémoire, c'est le pool de mémoire tampon et le cache du plan d'exécution qui nécessitent l'essentiel de la mémoire.

J'espère que cela vous aidera.