Процентное изменение суммарного места в базе данных

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

Отслеживает значительные изменения объема свободного пространства в базе данных за установленное число периодов выборки. Примечание: по умолчанию этот монитор отключен. Для его включения при необходимости используйте переопределения.

Knowledge Base article:

Сводка

Отслеживает большие изменения объема свободного пространства в базе данных за установленное число периодов выборки. Быстрые значительные изменения этого значения могут указывать на наличие проблемы.

Причины

Неисправное состояние вызвано значительным изменением доступного места за установленное число периодов выборки. Это может быть обусловлено следующими причинами:

Используйте следующую ссылку для просмотра данных о производительности: Данные о производительности базы данных

Этот монитор вычисляет доступное место для каждого файла в файловой группе в зависимости от конфигурации каждого файла:

Автоматическое увеличение не разрешено

Для файла без автоматического увеличения размера свободное место будет равно разности между первоначальным размером и используемым местом.

Автоматическое увеличение разрешено

В дополнение к разности между размером файла и используемым местом доступное место для файлов со включенным автоматическим увеличением будет равно меньшему из двух значений: разность между максимальным размером и размером файла или объем свободного места, оставшегося на диске.

При расчете доступного пространства также необходимо принимать во внимание, что файл может не увеличиваться, если размер увеличения файла больше, чем свободное пространство на диске, кроме того, увеличение невозможно, если разница между максимальным и текущим размером файла меньше размера увеличения. В таких ситуациях свободное место на диске не включается в доступное пространство, так как дальнейшее увеличение файла невозможно.

Решения

Эта проблема может быть устранена следующим образом.:

Переопределяемые параметры

Название

Описание

Значение по умолчанию

Приоритет предупреждения

Определяет приоритет предупреждения.

Обычные

Серьезность предупреждения

Определяет серьезность предупреждения.

MatchMonitorHealth

Максимальный размер файла Azure (в МБ)

Максимальный размер файлов данных, хранящихся в хранилище BLOB-объектов Azure. Рабочий процесс использует это значение как максимальный объем хранения каждого файла.

1048576

Критическое пороговое значение

Монитор изменит свое состояние на критическое, если значение превысит указанное пороговое значение. Если значение находится между этим пороговым значением и пороговым значением предупреждения (включительно), то монитор будет находиться в состоянии предупреждения.

45

Включено

Включает или отключает рабочий процесс.

Нет

Создает предупреждения

Определяет, создает ли рабочий процесс предупреждения.

Да

Интервал (в секундах)

Повторяющийся интервал времени в секундах, по истечении которого запускается рабочий процесс.

900

Число выборок

Показывает, сколько раз измеряемая величина должна пересечь пороговое значение, чтобы состояние изменилось.

5

Время синхронизации

Время синхронизации указывается в 24-часовом формате и может быть опущено.

 

Время ожидания (в секундах)

Определяет время, в течение которого возможно выполнение рабочего процесса перед закрытием и пометкой как сбойный.

300

Пороговое значение предупреждения

Пороговое значение предупреждения. Превышение этого порогового значения приведет к переключению монитора по крайней мере в состояние предупреждения.

25

Element properties:

TargetMicrosoft.SQLServer.2016.Database
Parent MonitorMicrosoft.SQLServer.2016.Database.DBSpaceMonitor
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityMatchMonitorHealth
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.DBPercentageChange
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2016: значительное изменение размера доступного суммарного места в БД в процентном отношении
В базе данных {2} в экземпляре SQL Server {1} на компьютере {0} произошло значительное изменение объема свободного места. Дополнительные сведения см. на вкладке "Контекст оповещения".
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Database.DBSizePercentageChangeMonitor" Accessibility="Public" Enabled="false" Target="SQL2016Core!Microsoft.SQLServer.2016.Database" ParentMonitorID="Microsoft.SQLServer.2016.Database.DBSpaceMonitor" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.DBPercentageChange" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.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="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.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="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ConnectionString$</ConnectionString>
<ServerName>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ServerName>
<SqlInstanceName>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</SqlInstanceName>
<ObjectName>SQL Database</ObjectName>
<CounterName>DB Available Space Total (%)</CounterName>
<InstanceName/>
<DatabaseName>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<Value>$Data/Property[@Name='DBFreeSpacePercent']$</Value>
<Threshold1>25</Threshold1>
<Threshold2>45</Threshold2>
<NumSamples>5</NumSamples>
<TimeoutSeconds>300</TimeoutSeconds>
<AzureMaxFileSizeMB>1048576</AzureMaxFileSizeMB>
</Configuration>
</UnitMonitor>