none
Por que a memória do SQL Server só diminui quando eu reinicio o servidor? RRS feed

  • Pergunta

  • Ola,

    Estou com um problema no SQL Server Express. Tenho uma aplicação que faz várias consultas e inserções. No gerenciador de tarefas a memória do processo do SQL Server vai crescendo com o tempo até chegar ao limite. Depois de chegar nesse limite a minha aplicação fica lenta para executar qualquer coisa.

    Vou lá e reinicio o serviço do SQL SERVER e sistema volta a ficar rápido.

    Existe algum configuração que eu habilite para ele liberar essa memória sem reiniciar o serviço?

    Abs.

    Dirceu Vieira.

    quarta-feira, 4 de novembro de 2015 13:28

Todas as Respostas

  • Dirceu,

    Este é o comportamento do SQL Server, ele assume que toda a memória do servidor disponível é para ele. E caso alguma aplicação precise, ele faz a liberação de acordo com a sua carga.

    Se você quiser limitar o consumo de memória do SQL Server, faça o seguinte:

    Botão direito na instância -> Properties -> Memory -> Maximum Server Memory (MB) e coloque o valor desejado como limite para o SQL Server (em Mega!)

    Se quiser fazer via T-SQL:

    EXEC sys.sp_configure N'show advanced options', N'1'  RECONFIGURE WITH OVERRIDE
    GO
    EXEC sys.sp_configure N'max server memory (MB)', N'6000' --
    GO
    RECONFIGURE WITH OVERRIDE
    GO
    EXEC sys.sp_configure N'show advanced options', N'0'  RECONFIGURE WITH OVERRIDE
    GO

    []'s!


    /* Logan Destefani Merazzi - DBA | @LoganMerazzi | http://www.merazzi.eti.br
    Se a resposta for útil, vote nela. Se resolveu, marque-a como resposta. */


    quarta-feira, 4 de novembro de 2015 13:32
  • Bom dia Dirceu,

    O SQL SEMPRE vai usar toda a memória disponível no seu sistema, vc pode controlar isso nas configurações da sua instancia, e ao reiniciar ele libera a memória, mas logo em seguida começa todo o processo novamente.

    Olha onde vc configura a quantidade mínima e máxima de memória do seu SQL !


    Flávio Farias "May the Force be with you" Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quarta-feira, 4 de novembro de 2015 13:34
  • Olá,

    Obrigado por responder, mas esse recurso eu já tentei utilizar, mas não me ajudou.

    Eu queria que fosse possível eliminar a memória que não está mais sendo usada.

    Não existe algum comando pra eu limpar um pouco dessa memória que não está mais em uso?

    Abs.

    Dirceu Vieira.

    quarta-feira, 4 de novembro de 2015 19:40
  • Olá,

    Obrigado por responder, mas esse recurso eu já tentei utilizar, mas não me ajudou.

    Eu queria que fosse possível eliminar a memória que não está mais sendo usada.

    Não existe algum comando pra eu limpar um pouco dessa memória que não está mais em uso?

    Abs.

    Dirceu Vieira.

    Dirceu,

    Se vc tem 8 GB vc configura 5 ou 6 para o SQL e o resto para o SO !!!!
    Essa é a ideia... Além do mais, o SQL pega memória para usar e se ele tá pegando essa memória é por que ele em algum momento precisou, no entanto ele não libera automaticamente após o uso, ele libera SE o seu SO precisa, mas ai é o gerenciamento interno !


    Flávio Farias "May the Force be with you" Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"

    quarta-feira, 4 de novembro de 2015 19:53
  • Olá bom dia,

    Deu certo aqui, temos uma memoria 24GB, que vive estourando, e faz o  servidor de BD travar, conforme as recomendações alterei para 16GB seja o máximo, o consumo da memória estava em 23,7GB. E após eu alterar reduziu para 17GB, sem precisar reiniciar o serviço. 

    Vou acompanhar o andamento durante o dia.

    terça-feira, 28 de junho de 2016 12:24