Spazio file database

Microsoft.SQLServer.2008.Monitoring.DBFileSpaceMonitor (UnitMonitor)

Esegue il monitoraggio dello spazio disponibile in un file di database e nei supporti che ospitano il file (in percentuale).

Knowledge Base article:

Riepilogo

Esegue il monitoraggio dello spazio disponibile in un file e nei supporti che ospitano il file stesso. Lo spazio disponibile nei supporti che ospitano i file è incluso nello spazio disponibile se l'aumento automatico delle dimensioni è abilitato per tale file.

Cause

Uno stato di tipo non integro viene determinato nel caso in cui lo spazio disponibile per il file sia insufficiente. Lo spazio disponibile può risultare insufficiente per i motivi seguenti:

Per visualizzare i dati sulle prestazioni, utilizzare il collegamento Dati sulle prestazioni spazio disponibile file database

Nessun aumento automatico delle dimensioni

Per un file senza aumento automatico delle dimensioni, lo spazio disponibile corrisponde alla differenza tra le dimensioni iniziali di un file e lo spazio utilizzato.

Aumento automatico delle dimensioni abilitato

Se l'aumento delle dimensioni è abilitato, lo spazio disponibile su disco è incluso nello spazio disponibile complessivo. Oltre alla differenza tra le dimensioni del file e lo spazio utilizzato, lo spazio disponibile per i file con aumento automatico delle dimensioni abilitato corrisponde al valore più basso tra le dimensioni massime e le dimensioni del file e lo spazio disponibile su disco.

Lo spazio disponibile insufficiente per i file di database con aumento automatico delle dimensioni potrebbe risultare insufficiente se le dimensioni del file si avvicinano ai limiti dell'unità logica di hosting. Per i file per i quali è abilitato l'aumento automatico delle dimensioni con dimensioni massime, lo spazio disponibile potrebbe inoltre risultare insufficiente se le dimensioni del file si avvicinano a quelle massime specificate.

I calcoli dello spazio disponibile tengono inoltre conto del fatto che l'aumento delle dimensioni del file può non riuscire se il livello di aumento del file è maggiore della quantità di spazio disponibile sul disco e che le dimensioni del file non possono aumentare se la differenza tra le dimensioni massime e quelle correnti del file è minore dell'aumento. In questi casi, lo spazio disponibile su disco non è incluso nello spazio disponibile perché non è possibile un ulteriore aumento delle dimensioni.

Soluzioni

Per risolvere il problema, effettuare una delle operazioni seguenti:

Vedere l'argomento della documentazione online di SQL Server Architettura di file e filegroup

Element properties:

TargetMicrosoft.SQLServer.2008.DBFile
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateFalse
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.DBFileSizeMonitorType
RemotableTrue
AccessibilityPublic
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.Monitoring.DBFileSpaceMonitor" Accessibility="Public" Enabled="true" Target="SQL2008Core!Microsoft.SQLServer.2008.DBFile" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.DBFileSizeMonitorType" ConfirmDelivery="true">
<Category>PerformanceHealth</Category>
<OperationalStates>
<OperationalState ID="UnderThreshold1" MonitorTypeStateID="UnderThreshold1" HealthState="Error"/>
<OperationalState ID="OverThreshold1UnderThreshold2" MonitorTypeStateID="OverThreshold1UnderThreshold2" HealthState="Warning"/>
<OperationalState ID="OverThreshold2" MonitorTypeStateID="OverThreshold2" HealthState="Success"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<ConnectionString>$Target/Host/Host/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Host/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>$Target/Host/Host/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/PerformanceCounterObject$ : Database : DB File</ObjectName>
<CounterName>DB File Free Space (%)</CounterName>
<InstanceName>$Target/Property[Type="SQL!Microsoft.SQLServer.DBFile"]/FileName$</InstanceName>
<DatabaseName>$Target/Host/Host/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</DatabaseName>
<DBFileId>$Target/Property[Type="SQL!Microsoft.SQLServer.DBFile"]/FileID$</DBFileId>
<Value>$Data/Property[@Name='FreeSpacePercent']$</Value>
<Threshold1>10</Threshold1>
<Threshold2>20</Threshold2>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>