Configuración de actualización de estadísticas automática y asincrónica

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

Supervisa la configuración de actualización de estadísticas automática y asincrónica de la base de datos.

Knowledge Base article:

Resumen

Este monitor comprueba el valor de configuración Actualizar estadísticas automática y asincrónicamente de esta base de datos. Debido a que este monitor forma parte de un requisito de estándares globales, se generará una alerta si la configuración no cumple el estándar especificado.

Configuración

Si la configuración Actualizar estadísticas automática y asincrónicamente se establece en ON, las actualizaciones de las estadísticas para la opción AUTO_UPDATE_STATISTICS son asincrónicas. El optimizador de consultas no espera a que finalicen las actualizaciones de las estadísticas para compilar las consultas. La configuración de esta opción en ON no surte efecto a menos que AUTO_UPDATE_STATISTICS se establezca en ON.

AUTO_UPDATE_STATISTICS_ASYNC {ON | OFF}

Causas

Si la opción no coincide con la configuración necesaria, se generará una alerta de advertencia. De fábrica, este monitor está configurado para generar una alerta cuando este valor de configuración se establezca en “ON”.

El motivo de que esta opción de base de datos se establezca en OFF de forma predeterminada es para mantener la compatibilidad con las aplicaciones existentes. Como las consultas no esperan o bloquean las actualizaciones de las estadísticas, existe la posibilidad de cambios temporales en el rendimiento si una consulta se compila y ejecuta con estadísticas anteriores. Después de que se realice la actualización de las estadísticas, la misma consulta se vuelve a compilar con las estadísticas actualizadas antes de la siguiente ejecución. Pero mientras se actualizan las estadísticas, la consulta podría tener problemas de rendimiento temporales ya que se compiló con las estadísticas anteriores.

Probablemente la actualización asincrónica sea la mejor opción para la mayoría de las aplicaciones ya que reduce el bloqueo y la espera generales. Considere la posibilidad de activarla si funciona para su aplicación y, a continuación, deshabilite este monitor de unidad.

Soluciones

Para solucionar este problema puede:

Por otro lado, si este monitor no constituye un problema para la base de datos:

Externo

Vea información más detallada sobre esta configuración: Opciones de ALTER DATABASE SET (Transact-SQL).

Vea también “ Usar las estadísticas para mejorar el rendimiento de las consultas”.

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Prioridad de alerta

Define la prioridad de la alerta.

Normal

Gravedad de alerta

Define la gravedad de la alerta.

Advertencia

Deshabilitar comprobación para SQL Express

Habilita o deshabilita la comprobación de la versión de SQL Express.

No

Habilitado

Habilita o deshabilita el flujo de trabajo.

No

Valor esperado

Para consultar el conjunto de valores posibles, vea la sección "Configuración" de la base de conocimientos de este monitor.

DESACTIVADO

Genera alertas

Define si el flujo de trabajo genera una alerta.

Intervalo (segundos)

Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo.

43200

Tiempo de espera (segundos)

Especifica el tiempo durante el que se puede ejecutar el flujo de trabajo antes de que se cierre y se marque como error.

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
Error de configuración de actualización de estadísticas automática y asincrónica
La configuración de actualización de estadísticas automática y asincrónica de la base de datos "{0}" en la instancia de SQL "{1}" del equipo "{2}" no está establecida según el procedimiento recomendado.
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>