Конфигурация автоматического сжатия

Microsoft.SQLServer.2014.Database.Configuration.AutoShrink (UnitMonitor)

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

Knowledge Base article:

Сводка

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

Конфигурация

При установке параметра автоматического сжатия статистики в значение ON файлы базы данных подлежат периодическому сжатию. И файлы данных, и файлы журналов могут быть автоматически сжаты. Автоматическое сжатие уменьшает размер журнала транзакций только в случае, если выбрана простая модель восстановления базы данных или была создана резервная копия журнала. Если этот параметр установлен в состояние OFF, файлы базы данных не будут автоматически сжиматься при периодической проверке на неиспользуемое пространство. При включенном параметре AUTO_SHRINK файлы будут сжаты, если более 25 процентов файла содержит неиспользуемое пространство. Файл будет сжат до размера, в котором 25 процентов файла — неиспользуемое место, или до того размера, который был у файла при создании, в зависимости от того, какая величина больше. Нельзя сжать базу данных, находящуюся в состоянии только для чтения.

Использование автоматического сжатия может привести к излишней фрагментации индекса, увеличению размера журнала транзакций и количества операций ввода-вывода. Автоматическое сжатие следует использовать только в случае, если вероятность дальнейшего увеличения базы данных мала и после сжатия можно выполнить инструкцию ALTER INDEX REORGANIZE.

AUTO_SHRINK {ON | OFF}

Причины

Если параметр не соответствует требуемому значению, формируется предупреждение. Монитор настроен для создания предупреждения, если для данного параметра задано значение ON.

Решения

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

Либо, если монитор не имеет значения для базы данных:

Внешнее

Более подробную информацию об этом параметре см. в: Параметры ALTER DATABASE SET (Transact-SQL)

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

Название

Описание

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

Включено

 

Нет

Отключить проверку SQL Express

Может принимать только значения "true" или "false". Рабочий процесс не будет учитывать выпуск Express SQL Server, если задано значение "true".

0

Ожидаемое значение

Ожидаемое значение параметра конфигурации базы данных. Для просмотра набора применимых значений обратитесь к разделу "Конфигурация" статьи базы знаний по этому монитору.

ОТКЛ

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

 

Да

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

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

43200

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

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

300

Element properties:

TargetMicrosoft.SQLServer.2014.Database
Parent MonitorMicrosoft.SQLServer.2014.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2014: ошибка конфигурации автоматического сжатия
Параметр "Автоматическое сжатие" для базы данных "{0}" в экземпляре SQL "{1}" на компьютере "{2}" настроен не в соответствии с рекомендациями.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2014.Database.Configuration.AutoShrink" Accessibility="Public" Enabled="false" Target="SQL2014Core!Microsoft.SQLServer.2014.Database" ParentMonitorID="Microsoft.SQLServer.2014.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Database.Configuration.AutoShrink.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ConfigurationValueOK" MonitorTypeStateID="ConfigurationValueOK" HealthState="Success"/>
<OperationalState ID="ConfigurationValueNotOK" MonitorTypeStateID="ConfigurationValueNotOK" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<ConnectionString>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</DatabaseName>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
<ConfigValue>AutoShrink</ConfigValue>
<ExpectedValue>OFF</ExpectedValue>
<ExcludeOnExpress>false</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>