Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server não libera memória após a execução da consulta


Na verdade, o SQL Server foi projetado para solicitar o máximo de RAM possível, o que não será liberado a menos que essa memória seja explicitamente exigida pelo sistema operacional. Acho que a melhor abordagem é limitar a quantidade de RAM que o servidor pode usar, o que permitirá que o sistema operacional tenha uma quantidade definida de recursos para usar não importa o quê. Para definir isso Como configurar opções de memória usando o SQL Server Management Studio :

Você também pode fazer isso em T-SQL usando os seguintes comandos (exemplo):
exec sp_configure 'max server memory', 1024
reconfigure

Para restringir o consumo a 1 GB.

Observação:o que foi dito acima não limitará todos os aspectos do SQL Server a essa quantidade de memória. Isso controla apenas o buffer pool e o cache do plano de execução. Coisas como CLR, Full Text, a memória real usada pelos arquivos .exe do SQL Server, SQL Agent, procedimentos armazenados estendidos etc. não são controlados por essa configuração. No entanto, essas outras coisas normalmente não precisam de muita memória, é o pool de buffers e o cache do plano de execução que precisam da maior parte da memória.

Eu espero que isso ajude.