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

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

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

Knowledge Base article:

Сводка

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

Оптимизатору запросов требуется наличие актуальных и точных статистических данных в целях получения хороших планов выполнения. В большинстве случаев, SQL Server должен поддерживать статистику. Если вы измените параметры "Автоматическое создание статистики" и "Автоматическое обновление статистики", то от вас зависит поддержание статистики в актуальном состоянии. Невыполнение этого требования может привести к снижению производительности запросов. У большинства приложений эти параметры имеют значение ON.

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

Если для параметра автоматического обновления статистики задано значение ON, оптимизатор запросов обновляет статистику, если она используется в запросе и может оказаться устаревшей. Статистика становится устаревшей, после того как операции вставки, обновления, удаления или слияния изменяют распределение данных в таблице или индексированном представлении. Оптимизатор запросов определяет, когда статистика может оказаться устаревшей, подсчитывая операции изменения данных с момента последнего обновления статистики и сравнивая количество изменений с пороговым значением. Пороговое значение основано на количестве строк в таблице или индексированном представлении. Оптимизатор запросов проверяет наличие устаревшей статистики перед компиляцией запроса и до выполнения кэшированного плана запроса. Перед компиляцией запроса оптимизатор запросов с помощью столбцов, таблиц и индексированных представлений в предикате запроса определяет, какая статистика могла устареть. Перед выполнением кэшированного плана запроса компонент Database Engine проверяет, ссылается ли этот план запроса на актуальную статистику. Параметр AUTO_UPDATE_STATISTICS применяется к статистике, создаваемой для индексов и отдельных столбцов в предикатах запросов, и к статистике, создаваемой инструкцией CREATE STATISTICS. Этот параметр также применяется к отфильтрованной статистике.

AUTO_UPDATE_STATISTICS {ON | OFF}

Причины

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

Решения

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

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

Внешнее

Более подробную информацию об этом параметре см. в: Параметры 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.AutoUpdateSet" 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.AutoUpdateSet.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>AutoUpdateSet</ConfigValue>
<ExpectedValue>ON</ExpectedValue>
<ExcludeOnExpress>false</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>