O monitor relatará um Estado Crítico e emitirá um alerta se a quantidade de espaço usado por linhas ativas nos arquivos de Dados com Otimização de Memória cair abaixo da configuração de Limite, expresso como percentual do tamanho dos arquivos de dados. Observação: este monitor é desabilitado por padrão. Use substituições para habilitá-lo quando necessário.
Este monitor relatará um Estado Crítico e emitirá um alerta se o Fator de preenchimento do coletor de lixo (uma quantidade de espaço usado por linhas ativas nos arquivos de dados com otimização de memória, expresso como percentual do tamanho dos arquivos de dados) cair abaixo da configuração de Limite.
O fator de preenchimento da coleta de lixo para o grupo de arquivos de dados com otimização de memória é a métrica que mostra o fator de preenchimento médio em todos os arquivos de dados/delta ativos contendo linhas inseridas/excluídas. Se essa métrica for menor que 50%, isso indicará que a mesclagem automática está atrasada. Isso não é uma causa imediata de preocupação porque o número de CFPs (pares de arquivo de ponto de verificação) está abaixo de 8.000 e você tem muito armazenamento disponível no Grupo de Arquivos de Dados com Otimização de Memória.
Observação: este monitor é desabilitado por padrão. Use substituições para habilitá-lo quando necessário.
Mais informações podem ser encontradas na documentação sys.dm_db_xtp_checkpoint_files (Transact-SQL)
http://go.microsoft.com/fwlink/?LinkId=799285
A seção 'Como a Coleta de Lixo funciona' pode ser encontrada no tópico 'Criar e Gerenciar Armazenamento para Objetos Otimizados em Memória'
http://go.microsoft.com/fwlink/?LinkId=799286
A mesclagem do CFP é iniciada com base em uma política de mesclagem interna. Consulte esse artigo para obter detalhes.
Realize uma mesclagem manual e force a coleta de lixo conforme descrito nesses artigos:
.
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. | Não |
Gerar Alertas | Define se o fluxo de trabalho gera um Alerta. | Sim |
Intervalo (segundos) | O intervalo de tempo recorrente em segundos no qual executa-se o fluxo de trabalho. | 900 |
Atraso do Script (milissegundos) | Este parâmetro define o atraso entre as consultas T-SQL consecutivas executadas pelo fluxo de trabalho. Isso pode ajudar a reduzir a pegada gerada pelo fluxo de trabalho em caso de um grande número de objetos de destino. Consulte o Suporte da Microsoft antes de alterar esse parâmetro. | 0 |
Hora da Sincronização | A hora da sincronização especificada usando um formato de 24 horas. Pode ser omitido. | 00:05 |
Limite | O valor coletado será comparado com esse parâmetro. | 50 |
Tempo Limite (segundos) | Especifica o tempo que o fluxo de trabalho pode funcionar antes de ser fechado e marcado como com falha. | 300 |
Target | Microsoft.SQLServer.2016.DBFileGroupFx | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2016.MonitorType.DBFileGroupFx.GarbageCollectionState | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2016.Monitor.DBFileGroupFx.GarbageCollectionState" Target="SQL2016Core!Microsoft.SQLServer.2016.DBFileGroupFx" ParentMonitorID="SystemHealth!System.Health.PerformanceState" TypeID="Microsoft.SQLServer.2016.MonitorType.DBFileGroupFx.GarbageCollectionState" Accessibility="Public" Enabled="false" Remotable="true" Priority="Normal" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Monitor.DBFileGroupFx.GarbageCollectionState.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter2>
<AlertParameter3>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</AlertParameter3>
<AlertParameter4>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.FileGroup"]/GroupName$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='StorageUsageFillFactor']$</AlertParameter5>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Critical" MonitorTypeStateID="Critical" HealthState="Error"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<ServerName>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</SqlInstanceName>
<DatabaseName>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<Value>Property[@Name='StorageUsageFillFactor']</Value>
<Threshold>50</Threshold>
<TimeoutSeconds>300</TimeoutSeconds>
<ScriptDelayMsec>0</ScriptDelayMsec>
</Configuration>
</UnitMonitor>