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 livre do banco de dados acima de um número definido de períodos de amostra.

Knowledge Base article:

Resumo

Monitora uma grande alteração no valor do espaço livre 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 em 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 livre 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 livre para arquivos com crescimento automático habilitado será o mínimo da diferença entre o tamanho máximo e o tamanho do arquivo e o espaço livre restante em disco.

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

Resoluções

Este problema pode ser resolvido de uma das seguintes maneiras:

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.

MatchMonitorHealth

Habilitado

Habilita ou desabilita o fluxo de trabalho.

Não

Gerar Alertas

Define se o fluxo de trabalho gera um Alerta.

Sim

Intervalo (segundos)

O intervalo de tempo recorrente em segundos no qual executa-se o fluxo de trabalho.

900

Limite Inferior

O limite inferior para este monitor.

25

Número de amostras

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

5

Hora da Sincronização

A hora da sincronização especificada usando um formato de 24 horas. Pode ser omitido.

 

Tempo limite (segundos)

Especifica o tempo durante o qual o fluxo de trabalho pode ser executado antes de ser fechado e marcado como com falha.

300

Limite Superior

O limite superior para este monitor.

45

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>