KB4077105 - CORREÇÃO: erro de falta de memória quando o espaço de endereço virtual do processo de SQL Server é muito baixo em 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 o Windows Server 2012 ou uma versão anterior do sistema operacional Windows. Quando o SQL Server usa todo o espaço de endereço virtual do modo de usuário, você pode receber uma mensagem de erro de memória insuficiente no log de erros do SQL Server. Além disso, as consultas levam muito tempo para concluir a execução e ocorre a SOS_MEMORY_TOPLEVELBLOCKALLOCATOR espera.

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

  • DBCC MEMORYSTATUS - Seção de contagens de processo/sistema - Memória virtual disponível
  • DMV: 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 diminuir 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:

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

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

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

Resolução

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

Atualização cumulativa 4 para o SQL Server 2017

Atualização cumulativa 8 para o SQL Server 2016 SP1

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

Sobre atualizações cumulativas para o SQL Server:

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

Atualização cumulativa mais recente do SQL Server 2017

Atualização cumulativa mais recente do SQL Server 2016

Atualização cumulativa mais recente do 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.

Status

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Referências

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