SQL Server, uso da max memory

Cuidados com a max memory do SQL Server

Por padrão, a max memory do SQL Server é 2.147.483.647 megabytes (MB), bastante não?

O SQL Server continuará usando cada vez mais memória até que não haja mais memória no servidor.

Configurar a max memory do SQL Server com um valor altíssimo, pode fazer com que uma instância do SQL Server tenha que competir por memória com outras instâncias do SQL Server. Esse problema ocorrera em um servidor físico ou virtual.

Se o sistema operacional não tiver memória suficiente, o servidor SQL usará o arquivo de paginação em vez da RAM. Usar o arquivo de paginação no lugar da memória RAM resultará em baixo desempenho do sistema de banco de dados. operações e consultas que deveriam ser rápidas, serão lidas e gravadas no disco rígido constantemente. 

Dica: Configurar a opção max server memory com o mínimo pode até impedir que o SQL Server inicialize. Caso, não puder inicializar o servidor SQL Server após alteração da memória máxima, inicie-o usando a opção de inicialização -f e redefina a max server memory para seu valor anterior.

Alguns administradores de banco de dados DBA, ficam tentadas a definir Min Memory com o mesmo valor que Max Memory, assim garantindo que o SQL Server sempre tenha memória suficiente.

Mas, de  acordo com a Microsoft :

“Se o mesmo valor for especificado para a memória mínima e a memória máxima, quando a memória alocada para o Banco de Dados do SQL Server atingir esse valor, o Banco de Dados do SQL Server para de liberar e adquirir memória dinamicamente para o pool de buffer.”

Isso pode impactar em outros caches e operações de consumo de memória.

Antes de consertar – entenda a unidade de medida

Aviso: a configuração de memória máxima no SQL Server é definida em megabytes , não em gigabytes. Portanto, se você pretende informar ao SQL Server para usar 20 GB como sua configuração de memória máxima, defina isso como 20480 (o equivalente em megabytes). A má configuração pode fazer com que o servidor SQL Server não aloque memória suficiente para inicializar corretamente. 

O SQL Server Standard Edition, pode usar mais memória do que você imagina

A partir do SQL Server 2012, o limite de memória de 64 GB para Standard Edition se aplica apenas ao cache de dados, e outras partes do SQL Server podem usar mais memória que isso. O limite do cache de dados do Microsoft SQL Server 2014 Standard Edition sobe para 128 GB.

Arrumar o problema de memória máxima do SQL Server

Escolha como definir a max server memory (MB). Nossa recomendação “inicial” é deixar 4 GB ou 10% do total de memória livre, o que for MAIOR em sua instância. Ajuste o máximo de memória conforme for utilizando.

Faça a mudança. Abaixo, demonstramos as etapas de como executar as alterações. Não é necessário reiniciar a instância do SQL Server, mas fará com que os planos de execução sejam recompilados.

Database Care

Seu banco de dados saudável e monitorado por uma equipe especializada em SQL Server e Oracle Database

DBA Remoto

Seu banco de dados em mãos especializadas. Tenhas as melhorias práticas do mercado aplicadas em seu SQL Server ou Oracle Database

Como definir a memória máxima do servidor (MB) no SQL Server

Escolha como deseja fazer: usando o ambiente gráfico ou TSQL.

Opção 1: use a GUI

Clique com o botão direito!

SQL Server, configuração memória máxima

Depois em propriedades,

SQL Server cuidado com uso da memória máxima

Esse número equivale a 12 GB, Lembre-se de que 1 GB equivale a 1024 MB, então calcule conforme sua necessidade!

Opção 2: definir memória máxima do servidor com T-SQL

Se você estiver familiarizado com sp_configure e configurá-lo para permitir o acesso às opções avançadas, você pode configurá-lo diretamente no T-SQL. Basta substituir 12345 abaixo pelo número de megabytes que deseja usar:

 

EXEC sys.sp_configure ‘max server memory (MB)’, ‘12345’;
RECONFIGURE;
GO

Algumas sugestões:

  • Você está executando apenas um SQL Server
  • Você não está executando SSIS, SSRS, SSAS, etc.
  • Você não usa nenhuma outra aplicação no servidor

Recomendamos, isolar as cargas de SQL workloads. Se você considerar qualquer um dos itens listados, as configurações de memória se tornarão mais complicadas.

Após essa alteração, seu servidor ficará menos vulnerável à paginação. Se o sistema de banco de dados SQL já estava paginando, você verá uma melhora no desempenho. Para verificar se você está paginando, verifique o Gerenciador de Tarefas, guia Desempenho e observe a métrica Memória Livre para Windows.

Se estiver abaixo de 200, você corre o risco de estar paginando.

Precisa de consultoria de ti para seu banco de dados SQL Server ou Oracle Database?

Fale com um especialista

Fale com um especialista agora, e tenha a melhor solução de TI para sua empresa.

Acompanhe a Tripletech nas redes sociais: