Contexto: Tenho uma instância do SQL Server em execução em uma de nossas VMs com 64 GB de memória. Atualmente, há um limite máximo de 60 GB e um limite mínimo de 0 GB. O SQL Server é o único aplicativo em execução no servidor que consome memória significativa.
Recentemente, lancei um recurso que faz consultas caras e repetidas ao SQL Server e, sempre que há muitos usuários usando o recurso, o uso de memória aumenta conforme o esperado. Não cheguei nem perto do limite, mas estou curioso para saber o que acontece quando nos aproximamos dele.
De acordo com a documentação da MS, li que o SQL Server manipula dinamicamente a memória para uso conforme necessário, mas não consegui encontrar nada sobre a lógica na qual o SQL Server libera memória dinamicamente.
Questões:
- Ele começa a liberar memória antes de atingir o limite especificado? O que (mais) aciona a liberação de memória?
- Como o SQL Server determina qual memória liberar? Ele libera memória de maneira FIFO?
Estou esquecendo completamente de algum ponto?