O monitor relatará um estado crítico e emitirá um alerta quando a quantidade de memória usada pelo pool de recursos for maior do que a configuração de Limite, expresso como percentual de memória disponível para tabelas de dados com otimização de memória para o pool de recursos fornecido. Este monitor é um monitor de dependência (rollup).
O monitor relatará um estado crítico quando a quantidade de memória usada pelo pool de recursos for maior do que a configuração de Limite, expresso como percentual de memória disponível para tabelas de dados com otimização de memória para o pool de recursos fornecido. Este monitor é um monitor de dependência (rollup).
O pool de recursos nomeado, quando mapeado para um banco de dados com otimização de memória, acompanha memória alocada para todas as tabelas com otimização de memória, incluindo tabelas internas que são usadas para estruturas diversas dentro do mecanismo de dados com otimização de memória.
O SQL Server com dados com otimização de memória usa mais memória e de formas diferentes do que o SQL Server. É possível que a quantidade de memória instalada e alocada para os dados com otimização de memória se torne inadequada para suas necessidades de crescimento. Se acontecer, você poderá ficar sem memória.
Consulte esse artigo para obter mais detalhes: Associar um banco de dados com tabelas com otimização de memória a um pool de recursos.
Para resolver sua condição de Memória Baixa ou Sem Memória, você precisa para liberar a memória existente reduzindo a utilização ou tornar mais memória disponível nas suas tabelas de dados com otimização de memória. Possíveis ações corretivas podem incluir:
Verifique se há uma transação de execução longa evitando a coleta de lixo da memória. Se sim, considere encerrar a transação de execução longa e/ou olhar para o design do aplicativo para ver se é possível reduzir a duração das transações.
Liberar memória existente.
Exclua as linhas não fundamentais da tabela com otimização de memória e aguarde a coleta de lixo.
Mova uma ou mais linhas para uma tabela baseada em disco.
Aumente o valor de MAX_MEMORY_PERCENT no pool de recursos.
Aumente a memória disponível para a Instância do SQL Server configurando a Memória Máxima do Servidor para um valor mais alto.
Instalar memória adicional.
Nome | Descrição | Valor padrão |
Habilitado | Habilita ou desabilita o fluxo de trabalho. | Não |
Gerar Alertas | Define se o fluxo de trabalho gera um Alerta. | Não |
Target | Microsoft.SQLServer.2016.Database |
Parent Monitor | System.Health.PerformanceState |
Algorithm | WorstOf |
Source Monitor | Microsoft.SQLServer.2016.Monitor.UserResourcePool.MemoryConsumption |
Relationship | Microsoft.SQLServer.2016.RelationshipType.DatabaseReferencesUserResourcePool |
Category | PerformanceCollection |
Enabled | False |
Alert Generate | False |
Alert Auto Resolve | False |
Remotable | True |
Accessibility | Public |
<DependencyMonitor ID="Microsoft.SQLServer.2016.DependencyMonitor.Database.MemoryConsumptionRollUp" Accessibility="Public" Enabled="false" Target="SQL2016Core!Microsoft.SQLServer.2016.Database" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" RelationshipType="SQL2016Core!Microsoft.SQLServer.2016.RelationshipType.DatabaseReferencesUserResourcePool" MemberMonitor="Microsoft.SQLServer.2016.Monitor.UserResourcePool.MemoryConsumption">
<Category>PerformanceCollection</Category>
<Algorithm>WorstOf</Algorithm>
<MemberUnAvailable>Error</MemberUnAvailable>
</DependencyMonitor>