KB4077105 - CORRECÇÃO: Erro de memória insuficiente quando o espaço de endereço virtual do processo de SQL Server é muito baixo no SQL Server

Aplica-se A
SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2017 Developer on Windows SQL Server 2017 Enterprise on Windows SQL Server 2017 Enterprise Core on Windows SQL Server 2017 Standard on Windows SQL Server 2016 Service Pack 1 SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use)

Sintomas

Suponha que você instale a versão de 64 bits do Microsoft SQL Server 2014, 2016 ou 2017 em um computador que esteja executando Windows Server 2012 ou uma versão anterior do sistema operacional Windows. Quando SQL Server usa todo o espaço de endereço virtual de modo de usuário, você pode receber uma mensagem de erro de memória insuficiente no log de erros SQL Server. Além disso, as consultas demoram muito tempo a concluir a execução e ocorre a SOS_MEMORY_TOPLEVELBLOCKALLOCATOR espera.

Ao examinar os seguintes pontos de informação, você descobrirá que há muito pouco espaço de endereço virtual disponível:

  • DBCC MEMORYSTATUS - Secção Contagens de Processos/Sistemas - Memória Virtual Disponível
  • Detran: sys.dm_os_process_memory - coluna virtual_address_space_available_kb

Esses valores começam em torno de 8 terabytes (TB) em um processo x64 e continuam a descer e chegar a alguns gigabytes (GB).

Quando você está no estágio em que o espaço de endereço virtual disponível é muito baixo, as consultas que tentam executar a alocação de memória também podem encontrar um tipo de espera de CMEMTHREAD.

Os seguintes pontos de dados continuarão a aumentar ao longo do tempo:

  • Detran: sys.dm_os_process_memory e sys.dm_os_memory_nodes - coluna virtual_address_space_reserved_kb
  • DBCC MEMORYSTATUS - Seção Gerenciador de Memória - VM Reservada

Estes valores aumentam normalmente em múltiplos do valor de "memória máxima do servidor" até quase 8 TB.

Observação O problema relacionado também é descrito na 3074434 da KB.

Resolução

Esta atualização está incluída nas seguintes atualizações cumulativas para SQL Server:

Atualização cumulativa 4 para SQL Server 2017

Atualização cumulativa 8 para SQL Server 2016 SP1

Atualização cumulativa 10 para SQL Server 2014 Service Pack 2

Acerca das atualizações cumulativas para SQL Server:

Cada nova atualização cumulativa para SQL Server contém todos os hotfixes e todas as correções de segurança que foram incluídas com a atualização cumulativa anterior. Consulte as atualizações cumulativas mais recentes para SQL Server:

Atualização cumulativa mais recente para o SQL Server 2017

Atualização cumulativa mais recente para o SQL Server 2016

Atualização cumulativa mais recente para o SQL Server 2014

Observação Depois de aplicar essa atualização, você precisa adicionar o sinalizador de rastreamento 8075 como um parâmetro de inicialização para habilitar essa alteração.

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".

Referências

Saiba mais sobre a terminologia que a Microsoft utiliza para descrever as atualizações de software.