Problemas de interoperabilidade entre o processamento do modo de lote e o modelo de memória de página grande

Este artigo ajuda você a resolve os problemas de desempenho e estabilidade que surgem do uso do processamento de modo em lote no columnstore e rowstore com um modelo de memória de página grande em SQL Server.

Versão original do produto: SQL Server 2012, SQL Server 2014, SQL Server 2016, SQL Server 2017, SQL Server 2019, SQL Server 2022
Número de KB original: 3210239

Sintomas

Neste cenário, você experimenta um ou mais dos seguintes problemas:

  • Um erro de Agendador não produtivo e despejos de memória associados no log de erros de SQL Server.

  • As consultas que usam o processamento do modo em lote podem ter sérios problemas de desempenho.

  • Exceções de violação de acesso e despejos de memória associados no log de erros de SQL Server.

  • Você pode ver a seguinte mensagem de erro ao executar sp_createstats:

    There is insufficient system memory in resource pool 'default' to run this query
    

Solução alternativa

Para atenuar esses problemas, tente ambos os dois métodos a seguir:

  • Desabilite o modelo de memória de página grande removendo o sinalizador de rastreamento 834 (-T834) de SQL Server parâmetros de inicialização na instância SQL Server. Ao concluir essa etapa, SQL Server para de usar um modelo de large page memória e reverte para um conventional modelo de memória oulock pages.

  • Se você não usar índices columnstore no SQL Server e experimentar os sintomas descritos, poderá desabilitar o modo de lote no rowstore no nível do banco de dados usando ALTER DATABASE SCOPED CONFIGURATION SET BATCH_MODE_ON_ROWSTORE = OFF. Para obter mais informações, consulte ALTER DATABASE SCOPED CONFIGURATION.

Mais informações