sql >> Base de Datos >  >> RDS >> Sqlserver

SQL Server no libera memoria después de ejecutar la consulta

De hecho, SQL Server está diseñado para solicitar la mayor cantidad de RAM posible, que no se liberará a menos que el sistema operativo requiera explícitamente esta memoria. Creo que el mejor enfoque es limitar la cantidad de RAM que el servidor puede usar, lo que permitirá que el sistema operativo tenga una cantidad determinada de recursos para usar sin importar qué. Para configurar esto Cómo configurar las opciones de memoria usando SQL Server Management Studio :

También puede hacerlo en T-SQL usando los siguientes comandos (ejemplo):

exec sp_configure 'max server memory', 1024
reconfigure

Restringir el consumo a 1GB.

Nota:lo anterior no limitará todos los aspectos de SQL Server a esa cantidad de memoria. Esto solo controla el grupo de búfer y la caché del plan de ejecución. Cosas como CLR, Texto completo, la memoria real utilizada por los archivos .exe de SQL Server, el Agente SQL, los procedimientos almacenados extendidos, etc., no están controlados por esta configuración. Sin embargo, estas otras cosas normalmente no necesitan tanta memoria, es el grupo de búfer y el caché del plan de ejecución los que necesitan la mayor parte de la memoria.

Espero que esto ayude.