Отслеживает параметр Async автоматического обновления статистики для базы данных
Монитор проверяет параметр автоматического асинхронного обновления статистики для базы данных. Поскольку монитор является частью общих требований стандарта, будет выдано предупреждение, если параметр не будет соответствовать указанному стандарту.
Если значение параметра автоматического асинхронного обновления статистики равно ON, обновление статистики, заданное параметром AUTO_UPDATE_STATISTICS, выполняется асинхронно. Оптимизатор запросов не ожидает завершения обновления статистики перед компиляцией запросов. Установка этого параметра в состояние ON не будет иметь эффекта, если параметр AUTO_UPDATE_STATISTICS не установлен в состояние ON.
AUTO_UPDATE_STATISTICS_ASYNC {ON | OFF}
Если параметр не соответствует требуемому значению, формируется предупреждение. Монитор настроен для создания предупреждения, если для данного параметра задано значение ON.
По умолчанию для этого параметра задается значение OFF для обеспечения обратной совместимости с существующими приложениями. Поскольку запросы не ожидают блокировки и не блокируются до завершения обновления статистики, существует вероятность временных изменений производительности при компиляции запроса и запуска со старой статистикой. После обновления статистики перед следующим запуском того же запроса будет выполнена его повторная компиляция с использованием обновленной статистики. Однако во время обновления статистики могут возникнуть кратковременные проблемы с производительностью, поскольку при компиляции использовалась старая статистика.
Для большинства приложений рекомендуется использовать параметр обновления ASYNC, поскольку он обеспечивает минимизацию общего времени блокировки и ожидания. Рекомендуется установить для него значение ON и при отсутствии проблем отключить для него монитор.
Эта проблема может быть устранена следующим образом.
Изменение параметра конфигурации для этой базы данных для обеспечения соответствия ожидаемому значению.
Переопределение ожидаемого значения для монитора этого компонента для одной или всех баз данных.
Либо, если монитор неважен для базы данных:
отключение монитора с помощью переопределения параметров для одной или всех баз данных;
отключение монитора агрегатной конфигурации верхнего уровня с помощью переопределения для одной или всех баз данных.
См. дополнительные сведения об этих настройках: Параметры ALTER DATABASE SET (Transact-SQL)
См. также Использование статистики для повышения производительности запросов
Target | Microsoft.SQLServer.2008.Database | ||
Parent Monitor | Microsoft.SQLServer.2008.Database.AutomaticConfiguration | ||
Category | ConfigurationHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2008.DBConfigurationStatus | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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>