Estou usando o Microsoft SQL Server 2012 e tentando executar uma consulta simples nele no Management Studio. Estou recebendo o seguinte erro (no SSMS, em execução no servidor):
Ocorreu um erro ao executar o lote. A mensagem de erro é: Exceção do tipo 'System.OutOfMemoryException' foi lançada.
O sistema tem 24 GB de RAM instalados, mas olhando no gerenciador de tarefas o processo sqlservr.exe está usando apenas 2,9 GB.
Existe uma configuração em algum lugar que está restringindo seu uso de RAM?
Este erro indica que o Management Studio está ficando sem memória, não o serviço SQL Server. Mesmo se você instalou o SQL Server de 64 bits, o executável do SQL Server Management Studio é um aplicativo de 32 bits.
Isso provavelmente é causado pelo tamanho do conjunto de resultados que você está retornando ao Management Studio. Você está executando algo como SELECT * FROM really_big_table? Consulte http://support.microsoft.com/kb/2874903 para obter mais informações.
Mike está certo de que a mensagem de erro que você está recebendo é do próprio aplicativo Management Studio, e não do SQL Server. É a memória em sua estação de trabalho local que foi esgotada, provavelmente devido à tentativa de puxar 16 bilhões de linhas para o aplicativo cliente (renderizar tantos dados em uma grade é bastante caro em termos de memória, então tente limitar suas consultas usando
TOP
etc. - Eu não sei que coisas práticas você poderia fazer com dados suficientes para usar toda a sua memória local de qualquer maneira).Mas quero resolver outro problema: usar o Gerenciador de Tarefas para avaliar a quantidade de memória que o SQL Server está usando. Não faça isso; é um mentiroso descarado. Copiando desta resposta (sua pergunta é dupla, então não posso fechá-la como uma duplicata):
Você NUNCA, NUNCA, pode confiar no Gerenciador de Tarefas para informar quanta memória o SQL Server está usando. Pare de usar o Gerenciador de Tarefas para isso, ponto final. Use o contador de desempenho - você também pode consultar o contador de desempenho usando DMVs:
Você pode salvar isso como um atalho de consulta em Ferramentas > Opções > Ambiente > Teclado > Atalhos de consulta e obter resultados precisos em uma janela de consulta muito mais rápido do que obter resultados imprecisos do Gerenciador de tarefas.
Você também pode verificar a pressão da memória (e se pode fazer algo a respeito) usando estas consultas:
Foi o mesmo caso comigo. Meu SQL Server Management Studio ficou aberto por alguns dias. Reiniciei e resolveu.
Descobri que desligar o IntelliSense ajudou. Também recomendo verificar todos os suplementos que você possui (coisas como ferramentas RedGate e ApexSQL também exacerbaram o problema para mim).
Esse problema me atormentou por dias e, para ser honesto, é bastante fraco da Microsoft. Eles realmente deveriam ter conjuntos de ferramentas de 64 bits, já que estamos lidando com big data atualmente, servidores de 64 bits e ambientes de desktop.
Para SQL 2008 R2, os comandos de consulta de memória (da postagem de Aaron Bertrand) são os seguintes
Observe também que o comando
pode não funcionar a menos que você tenha as opções avançadas habilitadas. por exemplo, faça isso primeiro
Observe que há um problema de conexão da Microsoft para isso como um vazamento de memória do SSMS. Eles acham que resolveram isso na v16.5
Veja o problema em Connect.microsoft.com clicando aqui
Se você instalar o mais recente e ainda tiver o problema, vote nele para ser reaberto.
SSMS v16.5 aqui
Conecte o problema indicando vazamento de memória corrigido em 16.5 aqui