Não há memória suficiente no sistema no conjunto de recursos padrão para executar esta consulta

15

Estou usando o SQL Server 2014 - 12.0.2269.0 (X64) no Windows Server 2012 e estou com alguns problemas de memória. Quando executo um procedimento armazenado que está fazendo um cálculo bastante "pesado", recebo um erro depois de 10 minutos:

Não há memória suficiente no sistema no pool de recursos 'padrão' para executar esta consulta.

Meu SQL Server possui vários bancos de dados (como 15, mas eles nem sempre são usados ​​ao mesmo tempo). Eu olhei para o arquivo de log do SQL Server (depois que recebi o erro) e vi muitas linhas como esta:

2015-12-17 12: 00: 37.57 spid19s Não permitir alocações de página para o banco de dados 'Database_Name' devido à memória insuficiente no conjunto de recursos 'padrão'. Consulte ' http://go.microsoft.com/fwlink/?LinkId=330673 ' para obter mais informações.

Um relatório é gerado no log com a memória usada por cada componente (eu acho). Se eu interpretar corretamente o relatório, podemos ver que há muita memória consumida MEMORYCLERK_SQLBUFFERPOOL. Você pode encontrar o relatório aqui: http://pastebin.com/kgmk9dPH

Também gerei um relatório com um gráfico que mostra a mesma "conclusão":

![uso de memória

Aqui estão outros relatórios úteis:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Observe que eu também vi esse erro no log:

2015-12-17 12: 04: 52.37 spid70 Falha na alocação de página devido à pressão da memória do banco de dados: FAIL_PAGE_ALLOCATION 8

Aqui estão algumas informações sobre a memória do servidor:

  • Memória total no servidor: 16 Gb

  • Memória alocada para o servidor SQL: 12288 Mb

  • Memória física em uso (de sys.dm_os_process_memory): 9287 Mb

Se puder ajudar, o servidor não hospeda nenhum banco de dados do SharePoint.

tatchi
fonte
Qual é a memória máxima e a RAM total no servidor?
Kin Shah

Respostas:

6

Embora essa provavelmente não seja uma resposta exata para o seu problema, eu a publicarei de qualquer maneira, esperando que possa ajudá-lo de alguma forma.

O que você está vendo não é MEMORYCLERK_SQLBUFFERPOOLo MEMORYCLERK_SQLLOGPOOLque está ocupando toda a memória.

Há um problema conhecido no SQL 2012 O SQL Server 2012 apresenta erros de falta de memória . Mesmo que você esteja executando 2014, é possível que você esteja executando o mesmo problema (mesmo que eu não tenha encontrado um item de conexão para 2014).

Há também esse problema conhecido para 2014 e 2012 envolvendo reconstruções de índice e always on. Você não especificou que está usando isso, mas talvez o mesmo bug tenha outros gatilhos: CORRECÇÃO: a memória cache do SQL diminui e o uso da CPU aumenta quando você reconstrói um índice para uma tabela no SQL Server

Portanto, minha melhor sugestão no momento é atualizar para a UC mais recente e ver se isso ainda acontece, pois houve algumas correções MEMORYCLERK_SQLLOGPOOLrecentemente. Como você está executando o RTM com apenas duas correções de segurança que possam fazer sentido, existem várias CUs disponíveis no SP1 +.

Como também há um uso de memória bastante alto MEMORYCLERK_XTPusado in-memory OLTPneste artigo, poderá ajudá-lo a solucionar problemas: Monitorar e solucionar problemas de uso de memória

Tom V - Equipe Monica
fonte