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.
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.
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 diversas estruturas 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á transações executando há muito tempo que estejam impedindo a coleta de lixo de memória. Se sim, considere eliminar a transação executando há muito tempo e/ou examine o design do aplicativo para ver se você pode reduzir a duração das transações.
Libere memória existente.
Exclua as linhas da tabela com Otimização de Memória não fundamentais 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.
Instale memória adicional.
Como gerenciar sua memória para dados com otimização de memória
Nome | Descrição | Valor Padrão |
Prioridade do Alerta | Define a Prioridade do Alerta. | Normal |
Severidade do Alerta | Define a Severidade do Alerta. | Erro |
Habilitado | Habilita ou desabilita o fluxo de trabalho. | Sim |
Gera Alertas | Define se o fluxo de trabalho gera ou não um Alerta. | Sim |
Intervalo (segundos) | O intervalo de tempo recorrente em segundos no qual executar o fluxo de trabalho. | 900 |
Número de amostras | Indica quantas vezes um valor medido deve romper um limite antes que o estado seja alterado. | 6 |
Tempo de Sincronização | O tempo de sincronização especificado usando um formato de 24 horas. Pode ser omitido. |
|
Limite | O valor coletado será comparado com esse parâmetro. | 90 |
Tempo Limite (em segundos) | Especifica o tempo que o fluxo de trabalho pode para ser executado antes de ser fechado e marcado como falha. | 300 |
Tempo limite da conexão de banco de dados (segundos) | O fluxo de trabalho falhará e registrará um evento, se ele não conseguir acessar o banco de dados durante o período especificado. | 15 |
Target | Microsoft.SQLServer.Windows.UserResourcePool | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.Windows.MonitorType.UserResourcePool.MemoryConsumption | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.UserResourcePool.MemoryConsumption" Target="SqlDiscW!Microsoft.SQLServer.Windows.UserResourcePool" ParentMonitorID="Health!System.Health.PerformanceState" TypeID="Microsoft.SQLServer.Windows.MonitorType.UserResourcePool.MemoryConsumption" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.UserResourcePool.MemoryConsumption.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.ResourcePool"]/Name$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ErrorState" MonitorTypeStateID="ErrorState" HealthState="Error"/>
<OperationalState ID="SuccessState" MonitorTypeStateID="SuccessState" HealthState="Success"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Host/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<Threshold>90</Threshold>
<NumSamples>6</NumSamples>
<PoolName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.ResourcePool"]/Name$</PoolName>
</Configuration>
</UnitMonitor>