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

Microsoft.SQLServer.2016.Database.Configuration.AutoClose (UnitMonitor)

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

Knowledge Base article:

Сводка

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

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

Зеркальное отображение базы данных требует, чтобы параметр AUTO_CLOSE был установлен в состояние OFF.

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

  • Примечание по проектированию и реализации — из электронной документации

  • Если база данных не запущена, в качестве свойств, для получения которых Microsoft SQL Server нужен непосредственный доступ к базе данных вместо доступа к метаданным, возвращаются значения NULL. Это происходит в случае, если для базы данных параметр AUTO_CLOSE установлен в ON или если база данных находится в режиме вне сети по другой причине.

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

Если параметр Auto Close имеет значение ON, после выхода из системы последнего пользователя база данных верно завершает работу, а используемые ею ресурсы освобождаются.

AUTO_CLOSE {ON | OFF}

Причины

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

Решения

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

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

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

Название

Описание

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

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

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

Обычные

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

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

Предупреждение

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

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

Да

Включено

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

Нет

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

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

ВЫКЛ.

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

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

Да

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

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

43200

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

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

300

Element properties:

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

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Database.Configuration.AutoClose" Accessibility="Public" Enabled="false" Target="SQL2016Core!Microsoft.SQLServer.2016.Database" ParentMonitorID="Microsoft.SQLServer.2016.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Database.Configuration.AutoClose.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.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="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
<ConfigValue>AutoClose</ConfigValue>
<ExpectedValue>OFF</ExpectedValue>
<ExcludeOnExpress>true</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>