Supervisa la configuración de actualización automática de estadísticas para la base de datos. Nota: este monitor está deshabilitado de manera predeterminada. Use las invalidaciones para habilitarla cuando sea necesario.
Este monitor comprueba el valor de configuración Actualizar estadísticas automáticamente 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.
El optimizador de consultas necesita estadísticas actualizadas y precisas para generar buenos planes. En la mayoría de los casos, lo mejor es dejar que SQL Server realice el mantenimiento de las estadísticas. Si se desactiva “Crear estadísticas automáticamente” y “Actualizar estadísticas automáticamente”, depende del usuario que se mantengan actualizadas las estadísticas. De no hacerlo, el rendimiento de las consultas sería deficiente. La mayoría de las aplicaciones tienen activadas estas opciones.
Si la configuración Actualizar estadísticas automáticamente se establece en ON, el optimizador de consultas actualiza las estadísticas cuando son usadas por una consulta y parece que puedan estar obsoletas. Las estadísticas se vuelven obsoletas después de que operaciones de inserción, actualización, eliminación o combinación cambien la distribución de los datos en la tabla o la vista indizada. El optimizador de consultas determina cuándo han podido quedar obsoletas las estadísticas contando el número de modificaciones de datos desde la actualización más reciente de las estadísticas, comparando el número de modificaciones con respecto a un umbral. El umbral se basa en el número de filas de la tabla o la vista indizada. El optimizador de consultas comprueba que hay estadísticas obsoletas antes de compilar una consulta y antes de ejecutar un plan de consulta almacenado en la memoria caché. Antes de compilar una consulta, el optimizador de consultas utiliza las columnas, tablas y vistas indizadas en el predicado de consulta, para determinar qué estadísticas podrían estar obsoletas. Antes de ejecutar un plan de consulta almacenado en la memoria caché, el motor de base de datos comprueba que el plan de consulta hace referencia a las estadísticas actualizadas. La opción AUTO_UPDATE_STATISTICS se aplica a las estadísticas creadas para índices y columnas únicas de los predicados de consulta, así como a las estadísticas creadas con la instrucción CREATE STATISTICS. Esta opción también se aplica a las estadísticas filtradas.
AUTO_UPDATE_STATISTICS {ON | OFF}
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 “OFF”.
Para solucionar este problema puede:
Cambiar el valor de configuración para que esta base de datos coincida con el valor esperado.
Invalidar el valor esperado de este monitor de unidad para esta base de datos específica o para todas las bases de datos.
Por otro lado, si este monitor no constituye un problema para la base de datos:
Deshabilitar el monitor mediante invalidaciones para esta base de datos específica o para todas las bases de datos.
Deshabilitar el monitor de configuración de agregado de nivel superior mediante invalidaciones para esta base de datos específica o para todas las bases de datos.
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”.
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 | Solo se puede definir como 'true' o 'false'. Si se define como 'true', el flujo de trabajo no tendrá en cuenta la edición de SQL Server Express. | No |
Habilitado | Habilita o deshabilita el flujo de trabajo. | No |
Valor esperado | Se esperaba un valor de configuración de la base de datos. Para ver el conjunto de valores aplicables, consulte la sección "Configuración" del artículo de la knowledge base de este monitor. | ACTIVADO |
Genera alertas | Define si el flujo de trabajo genera una alerta. | Sí |
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 |
Target | Microsoft.SQLServer.2016.Database | ||
Parent Monitor | Microsoft.SQLServer.2016.Database.AutomaticConfiguration | ||
Category | ConfigurationHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2016.DBConfigurationStatus | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2016.Database.Configuration.AutoUpdateSet" 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.AutoUpdateSet.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>AutoUpdateSet</ConfigValue>
<ExpectedValue>ON</ExpectedValue>
<ExcludeOnExpress>false</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>