Índice dos pares de arquivo de ponto de verificação obsoleto de dados com otimização de memória

Microsoft.SQLServer.2016.Monitor.DBFileGroupFx.StaleCFPs (UnitMonitor)

O monitor relatará um estado de aviso e emitirá um alerta quando a proporção de pares de arquivos de ponto de verificação obsoletos no Grupo de Arquivos de Dados com Otimização de Memória for maior do que os limites especificados.
Observe que os alertas são lançados somente se o banco de dados correspondente é razoavelmente grande (300 ou mais arquivos de ponto de verificação no total).

Knowledge Base article:

Resumo

O monitor relata um estado de aviso e emite um alerta quando a parcela de pares de arquivos de ponto de verificação obsoletos no Grupo de Arquivos de Dados com Otimização de Memória é maior do que os limites especificados.

Observe que os alertas são disparados somente se o banco de dados correspondente é razoavelmente grande (300 ou mais arquivos de ponto de verificação no total).

CFPs obsoletos são arquivos deixados no sistema aguardando por truncamento do log ou coleta de lixo.

Causas

A mesclagem do CFP é iniciada com base em uma política de mesclagem interna. Consulte esse artigo para obter detalhes.

Resoluções

Realize uma mesclagem manual e force a coleta de lixo, conforme descrito nestes artigos:

Parâmetros Substituíveis

Nome

Descrição

Valor padrão

Prioridade do Alerta

Define a Prioridade do Alerta.

Normal

Severidade do Alerta

Define a Severidade do Alerta.

Aviso

Limite de Pares de Arquivo de Ponto de Verificação

Um alerta seria gerado se a contagem total dos Pares de Arquivo de Ponto de Verificação fosse maior ou igual ao Limite dos Pares de Arquivo de Ponto de Verificação.

300

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.

300

Número de amostras

Indica quantas vezes um valor medido deve violar os limites antes do estado ser alterado.

6

Atraso do Script (milissegundos)

Este parâmetro configura o atraso entre consultas T-SQL consecutivas executadas pelo fluxo de trabalho. Isso pode ajudar a reduzir o volume gerado pelo fluxo de trabalho no caso de um número grande de objetos de destino. Consulte o Suporte da Microsoft antes de alterar esse parâmetro.

0

Tempo de Sincronização

O tempo de sincronização especificado usando um formato de 24 horas. Pode ser omitido.

 

Limite

A razão coletada será comparada a esse parâmetro.

60

Tempo limite (segundos)

Especifica a quantidade de tempo que o fluxo de trabalho tem permissão para executar antes de ser fechado e marcado como com falha.

180

Element properties:

TargetMicrosoft.SQLServer.2016.DBFileGroupFx
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.DBFileGroupFx.StaleCFPs.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2016: a porção de CFPs obsoletos está acima dos limites
A razão entre os pares de arquivos de ponto de verificação obsoletos e o número total de CFPs atingiu os limites.
Servidor: {1}
Instância do SQL Server: {0}
Banco de dados: {2}
Grupo de arquivos: {3}
Razão de pares de arquivos de ponto de verificação obsoletos: {4}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Monitor.DBFileGroupFx.StaleCFPs" Target="SQL2016Core!Microsoft.SQLServer.2016.DBFileGroupFx" ParentMonitorID="SystemHealth!System.Health.PerformanceState" TypeID="Microsoft.SQLServer.2016.DBFileGroupFx.StaleCFPs.MonitorType" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Monitor.DBFileGroupFx.StaleCFPs.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</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/SampleValue$</AlertParameter5>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ErrorState" MonitorTypeStateID="ErrorState" HealthState="Warning"/>
<OperationalState ID="SuccessState" MonitorTypeStateID="SuccessState" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>300</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>
<Threshold>60</Threshold>
<CfpCountThreshold>300</CfpCountThreshold>
<TimeoutSeconds>180</TimeoutSeconds>
<ScriptDelayMsec>0</ScriptDelayMsec>
<NumSamples>6</NumSamples>
</Configuration>
</UnitMonitor>