Fala pessoal,
Neste post vou falar sobre os limites e melhores práticas a respeito de configurações de memória no SQL SERVER.
O funcionamento
O SQL SERVER possui dois limites configuráveis de alocação de memória: inferior e superior.
Quando o serviço do mesmo é iniciado apenas uma pequena quantidade de memória é alocada (o suficiente para alocar as estruturas de funcionamento de buffers), não necessariamente o limite inferior configurado.
Quando o SQL SERVER alcançar o limite mínimo ele manterá o Buffer Cache no mínimo neste valor. O limite máximo indica para o SGBD não ultrapassar determinado valor de alocação de memória.
Vale lembrar que este limite configurável determina apenas o valor do Buffer Cache, o SQL SERVER normalmente necessita de mais 20% de memória para funcionamento adequado.
A boa prática
O ideal assim que terminamos de instalar a instância do SQL SERVER é reservar um valor específico como limite mínimo e um valor superior como limite máximo. Respeitando os seguintes fatores:
- O SQL SERVER vai consumir em média mais 20% de memória acima do limite máximo e;
- O Sistema Operacional também precisa trabalhar! Deixe em torno de 20% da memória total do servidor para ele.
A péssima prática
Consideramos péssimas práticas:
- Deixar de configurar os limites de memória do SQL SERVER;
- Configurar os limites de memória com valores iguais.
São péssimas práticas porque:
- Caso o S.O. sinalize pressão de memória o SQL não vai liberar nada;
- Mesma situação, não será possível dar uma “folga” para o S.O. caso haja pressão externa de memória.
Abaixo o vídeo com a nossa experiência: