Il monitoraggio segnala uno stato Critico e genera un avviso se la quantità di spazio usata dalle righe attive in tutti i file di dati con ottimizzazione per la memoria scende sotto l'impostazione della soglia, espressa come percentuale delle dimensioni dei file di dati. Nota: per impostazione predefinita, questo monitoraggio è disabilitato. Usare gli override per abilitarlo quando necessario.
Questo monitoraggio segnala uno stato Critico e genera un avviso se il fattore di riempimento del Garbage Collector, ovvero una quantità di spazio usata dalle righe attive nei file di dati con ottimizzazione per la memoria, espressa come percentuale delle dimensioni dei file di dati, scende sotto l'impostazione della soglia.
Il fattore di riempimento di Garbage Collection per il filegroup di dati con ottimizzazione per la memoria rappresenta la metrica che mostra il fattore di riempimento medio tra tutti i file di dati/differenziali attivi contenenti le righe inserite/eliminate. Se questa metrica è inferiore al 50%, indica che l'unione automatica è rimasta indietro. Ciò non rappresenta un problema immediato purché il numero di coppie di file di checkpoint rimanga al di sotto di 8000 e lo spazio di archiviazione disponibile nel filegroup di dati con ottimizzazione per la memoria sia più che sufficiente.
Nota: per impostazione predefinita, questo monitoraggio è disabilitato. Usare gli override per abilitarlo quando necessario.
Altre informazioni sono disponibili nella documentazione sys.dm_db_xtp_checkpoint_files (Transact-SQL)
http://go.microsoft.com/fwlink/?LinkId=799285
La sezione relativa al funzionamento di Garbage Collection è disponibile dell'argomento "Creazione e gestione dell'archiviazione per gli oggetti con ottimizzazione per la memoria"
http://go.microsoft.com/fwlink/?LinkId=799286
L'unione delle coppie di file di checkpoint viene avviata in base ai criteri di unione interni. Per informazioni dettagliate, vedere questo articolo.
Eseguire un'unione manuale e forzare il processo di Garbage Collection come descritto negli articoli seguenti:
Monitoraggio e risoluzione di problemi relativi all'unione di coppie di file di dati e differenziali
Esecuzione forzata del processo di Garbage Collection sui file di dati uniti
.
Nome | Descrizione | Valore predefinito |
Priorità avviso | Definisce la priorità dell'avviso. | Normale |
Gravità avviso | Definisce la gravità dell'avviso. | Errore |
Abilitato | Abilita o disabilita il flusso di lavoro. | No |
Genera avvisi | Definisce se il flusso di lavoro genera un avviso. | Sì |
Intervallo (secondi) | Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro. | 900 |
Ritardo script (millisecondi) | Questo parametro imposta il ritardo tra le query T-SQL consecutive eseguite dal flusso di lavoro. Favorisce la riduzione del footprint generato dal flusso di lavoro in presenza di un numero elevato di oggetti di destinazione. Prima di cambiare questo parametro, consultare il Supporto tecnico Microsoft. | 0 |
Ora di sincronizzazione | Ora di sincronizzazione specificata usando il formato a 24 ore. Può essere omessa. | 00:05 |
Soglia | Il valore raccolto verrà confrontato con questo parametro. | 50 |
Timeout (secondi) | Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito. | 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>