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

Microsoft.SQLServer.2008.Database.Configuration.AutoUpdateStatAsync (UnitMonitor)

Отслеживает параметр Async автоматического обновления статистики для базы данных

Knowledge Base article:

Сводка

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

Настройка

Если значение параметра автоматического асинхронного обновления статистики равно ON, обновление статистики, заданное параметром AUTO_UPDATE_STATISTICS, выполняется асинхронно. Оптимизатор запросов не ожидает завершения обновления статистики перед компиляцией запросов. Установка этого параметра в состояние ON не будет иметь эффекта, если параметр AUTO_UPDATE_STATISTICS не установлен в состояние ON.

AUTO_UPDATE_STATISTICS_ASYNC {ON | OFF}

Причины

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

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

Для большинства приложений рекомендуется использовать параметр обновления ASYNC, поскольку он обеспечивает минимизацию общего времени блокировки и ожидания. Рекомендуется установить для него значение ON и при отсутствии проблем отключить для него монитор.

Решения

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

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

Внешнее

См. дополнительные сведения об этих настройках: Параметры ALTER DATABASE SET (Transact-SQL).

См. также " Использование статистики для повышения производительности запросов".

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

Имя

Описание

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

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

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

Обычные

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

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

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

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

Включает или отключает проверку версии SQL Express.

Нет

Включено

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

Нет

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

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

ВЫКЛ.

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

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

Да

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

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

43200

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

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

300

Element properties:

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

Source Code:

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