Inquiridor
Liberar memória usada pelo SQL Server

Pergunta
-
Olá,Estou com o seguinte problema : tenho uma aplicação que roda muitas querys em loop. O Sql Server vai aumentando a memória alocada até inviabilizar a operação do servidor que vai ficando lendo até começar a gerar timeouts. Já otimizei tudo o que podia em minha aplicação mas o aumento de consumo de memória se mantém.Sem minha aplicação rodando a memória ocupada pelo SQL Server se mantém em torno de 1.2 Gb e com minha aplicação a demanda vai a 2 Gb e começa a travar tudo. O servidor é Win 2003 e tem 4 Gb.Agradeço muito qualquer ajuda.
- Movido Gustavo Maia Aguiar quarta-feira, 10 de março de 2010 16:58 (De:SQL Server - Desenvolvimento Geral)
Todas as Respostas
-
-
Olá Anderson,Trata-se de um loop em todas as operações de compra e venda do cliente realizadas em um certo período de temmpo para gerar o SINTEGRA. Trata-se no caso de um loop controlado. Ai a memória consumida pelo SGBD vai aumentando e eu não consigo reduzir esta memória.Obrigado
-
Boa Tarde,
O SQL Server aloca e desaloca memória de maneira eficiente e se ele está alocando mais memória do que deve, possivelmente a aplicação está demandando dele coisas que exijam mais alocações de memória. Para um banco de dados não é ruim alocar memória, pois, justamente por alocar mais memória é que ele poderá retornar os dados requisitados mais rapidamente sem a necessidade de recuperação do disco. Se a memória está totalmente alocada isso deve ser visto como um ponto positivo, pois, mais dados estão em memória e podem servir as requisições eficientemente.
Desalocar memória apenas irá "descartar" o que já estava em memória e novas requisições irão forçar o SQL Server a requisitar os dados do disco o que pode ser mais prejudicial no fim das contas. Eu sugiro rever a aplicação (talvez haja mais ainda a otimizar).
Se isso não puder ser feito, sugiro limitar o uso da memória. Caso você queira desalocar, rode os comandos abaixo por sua conta e risco (pode ser que eles piorem o desempenho ao invés de melhorá-lo):
DBCC DROPCLEANBUFFERS DBCC FREEPROCCACHE
[ ]s,Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.comComo descobrir a data do último acesso a uma tabela ?
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!964.entry
Classifique as respostas. O seu feedback é imprescindível- Sugerido como Resposta Gustavo Maia Aguiar quarta-feira, 10 de março de 2010 17:12