Spazio disponibile per il contenitore del filegroup di dati con ottimizzazione per la memoria

Microsoft.SQLServer.Windows.Monitor.Container.FreeSpacePercent (UnitMonitor)

Il monitoraggio restituisce un avviso quando lo spazio disponibile su disco per il contenitore del filegroup di dati con ottimizzazione per la memoria scende sotto l'impostazione della soglia di avviso, espressa come percentuale della somma delle dimensioni dei contenitori del filegroup di dati con ottimizzazione per la memoria e dello spazio disponibile su disco. Il monitoraggio restituisce un avviso critico quando lo spazio disponibile scende sotto la soglia critica.

Knowledge Base article:

Riepilogo

Il monitoraggio restituisce un avviso quando lo spazio disponibile su disco per il contenitore del filegroup di dati con ottimizzazione per la memoria scende sotto l'impostazione della soglia di avviso, espressa come percentuale della somma delle dimensioni dei contenitori del filegroup di dati con ottimizzazione per la memoria e dello spazio disponibile su disco. Il monitoraggio restituisce un avviso critico quando lo spazio disponibile scende sotto la soglia critica.

Le dimensioni della cartella dei contenitori del filegroup di dati con ottimizzazione per la memoria aumentano in genere nel tempo in seguito all'aggiunta di dati nelle tabelle dati con ottimizzazione per la memoria. Di conseguenza, gli amministratori dovranno garantire che vi sia sempre spazio sufficiente nella posizione di archiviazione della cartella dei contenitori.

Cause

Quando lo spazio disponibile su disco nell'unità in cui è configurata la posizione di archiviazione del database diventa troppo basso, possono verificarsi alcuni errori impedendo la corretta elaborazione dei dati, ritardando le query dell'utente o influendo anche sulle altre applicazioni che condividono la stessa allocazione dello spazio su disco.

Lo spazio di archiviazione viene allocato come parte delle operazioni DML nelle tabelle con ottimizzazione per la memoria durevoli. È necessario configurare lo spazio di archiviazione fino a 4 volte le dimensioni dei dati con ottimizzazione per la memoria delle tabelle con ottimizzazione per la memoria durevoli. Se lo spazio di archiviazione è stato configurato correttamente ma si verificano ancora errori di spazio di archiviazione disponibile insufficiente, è possibile che le operazioni di input/output al secondo supportate dai contenitori non siano in grado di supportare la richiesta del carico di lavoro. Una raccomandazione generale per i contenitori è quella di supportare operazioni di input/output al secondo con una velocità 3 volte quella di generazione dei dati in modo da includere il popolamento iniziale dei file di dati/differenziali e l'operazione di unione automatica che deve leggere i file di dati/differenziali di origine e quindi unirli in una coppia di file di checkpoint.

Risoluzioni

Le risoluzioni per lo spazio insufficiente disponibile su disco dipendono dalle cause principali che devono essere investigate caso per caso quando si verifica tale problema. È possibile provare a risolvere tale condizione adottando uno dei tanti approcci potenziali:

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Priorità avviso

Definisce la priorità dell'avviso.

Normale

Gravità avviso

Definisce la gravità dell'avviso.

Errore

Dimensioni massime del file in Azure (MB)

Dimensioni massime del file di dati archiviato nell'archiviazione BLOB di Azure. Il flusso di lavoro considera questo valore come la capacità di archiviazione massima per ogni file.

1048576

Soglia critica

Lo stato del monitoraggio passerà a 'Critico' se il valore scende sotto questa soglia.

10

Attivato

Abilita o disabilita il flusso di lavoro.

Genera avvisi

Definisce se il flusso di lavoro genera un avviso.

Intervallo (secondi)

Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro.

900

Tempo di sincronizzazione

Ora di sincronizzazione specificata usando il formato a 24 ore. Può essere omessa.

 

Timeout (secondi)

Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito.

300

Timeout per la connessione di database (secondi)

Il flusso di lavoro avrà esito negativo e registrerà un evento se non riesce ad accedere al database durante il periodo specificato.

15

Soglia di avviso

Lo stato del monitoraggio passerà ad 'Avviso' se il valore scende sotto questa soglia.

20

Element properties:

TargetMicrosoft.SQLServer.Windows.Container
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Windows.MonitorType.Container.FreeSpacePercent
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL per Windows: Spazio disponibile insufficiente per il contenitore del filegroup di dati ottimizzati per la memoria
Rimane solo il {6}\% di spazio disponibile per il contenitore del filegroup di dati ottimizzati per la memoria "{0}", che è meno della soglia configurata per l'avviso.
Server: {4}
Istanza di SQL Server: {3}
Database: {2}
Filegroup: {1}
Contenitore: {0}
Dimensioni disco: {5} MB
Spazio disponibile per il contenitore del filegroup di dati ottimizzati per la memoria: {7} MB ({6}\%)
Dimensioni contenitore del filegroup di dati ottimizzati per la memoria: {8} MB
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.Container.FreeSpacePercent" Accessibility="Public" Enabled="false" Target="SqlDiscW!Microsoft.SQLServer.Windows.Container" ParentMonitorID="Health!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.Container.FreeSpacePercent" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.Container.FreeSpacePercent.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</AlertParameter3>
<AlertParameter4>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Filegroup"]/GroupName$</AlertParameter4>
<AlertParameter5>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='DiskTotalSizeMB']$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='FreeSpacePercent']$</AlertParameter7>
<AlertParameter8>$Data/Context/Property[@Name='FreeSpaceMB']$</AlertParameter8>
<AlertParameter9>$Data/Context/Property[@Name='AllocatedSizeMB']$</AlertParameter9>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Critical" MonitorTypeStateID="ContainerFreeSpaceCritical" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="ContainerFreeSpaceWarning" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="ContainerFreeSpaceSuccess" HealthState="Success"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<FileName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.File"]/FileName$</FileName>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
<CriticalThreshold>10</CriticalThreshold>
<WarningThreshold>20</WarningThreshold>
<ConnectionString>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Host/Host/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>