Alteração de Porcentagem de Espaço do Banco de Dados

Microsoft.SQLServer.2012.Database.DBSizePercentageChangeMonitor (UnitMonitor)

Monitora uma grande alteração no valor do espaço disponível do banco de dados acima de um número configurado de períodos de amostra.

Knowledge Base article:

Resumo

Monitora uma grande alteração no valor do espaço disponível do banco de dados acima de um número configurado de períodos de amostra. Uma grande alteração rápida no valor pode indicar um problema.

Causas

Um estado não íntegro é ocasionado por uma grande alteração no espaço disponível acima de um número definido de períodos de amostra. Isso pode ser ocasionado por:

Use o seguinte link para exibir os dados de desempenho: Dados de Desempenho do Banco de Dados

Este monitor agrega o espaço disponível para cada arquivo em um grupo de arquivos, dependendo da configuração de cada arquivo:

Sem Crescimento Automático

Para um arquivo sem crescimento automático, o espaço disponível será a diferença entre o tamanho inicial de um arquivo e o espaço utilizado.

Crescimento Automático Habilitado

Além da diferença entre o tamanho do arquivo e o espaço utilizado, o espaço disponível para arquivos com crescimento automático habilitado será o valor mínimo da diferença entre o tamanho máximo e o tamanho do arquivo, e o espaço livre deixado no disco.

Os cálculos de espaço disponível também levam em consideração que o arquivo poderá não crescer se o valor de crescimento do arquivo for maior que o valor deixado no disco, e se a diferença entre o tamanho máximo e o tamanho atual do arquivo for menor que o valor do crescimento. Nesses casos, o espaço livre disponível deixado no disco não será incluído como parte do espaço disponível porque não é possível crescer mais.

Resoluções

Este problema pode ser resolvido de uma das seguintes maneiras:

Element properties:

TargetMicrosoft.SQLServer.2012.Database
Parent MonitorMicrosoft.SQLServer.2012.Database.DBSpaceMonitor
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2012.DBPercentageChange
RemotableTrue
AccessibilityPublic
Alert Message
Alteração Significativa na Porcentagem do Espaço Total Livre do Banco de Dados
O banco de dados {0} na instância SQL {1} do computador {2} sofreu uma alteração significativa no espaço livre. Consulte a guia de “contexto de alerta” para obter mais detalhes.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2012.Database.DBSizePercentageChangeMonitor" Accessibility="Public" Enabled="false" Target="SQL2012Core!Microsoft.SQLServer.2012.Database" ParentMonitorID="Microsoft.SQLServer.2012.Database.DBSpaceMonitor" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.DBPercentageChange" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.Database.DBSizePercentageChangeMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>MatchMonitorHealth</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="UnderThreshold1" MonitorTypeStateID="UnderThreshold1" HealthState="Success"/>
<OperationalState ID="OverThreshold1UnderThreshold2" MonitorTypeStateID="OverThreshold1UnderThreshold2" HealthState="Warning"/>
<OperationalState ID="OverThreshold2" MonitorTypeStateID="OverThreshold2" HealthState="Error"/>
</OperationalStates>
<Configuration>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<ConnectionString>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/PerformanceCounterObject$:Database</ObjectName>
<CounterName>DB Total Free Space (%)</CounterName>
<InstanceName/>
<DatabaseName>$Target/Property[Type="SQL!Microsoft.SQLServer.Database"]/DatabaseName$</DatabaseName>
<Value>$Data/Property[@Name='DBFreeSpacePercent']$</Value>
<Threshold1>25</Threshold1>
<Threshold2>45</Threshold2>
<NumSamples>5</NumSamples>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>