Configuración de cierre automático

Microsoft.SQLServer.Windows.Monitor.Database.AutoCloseConfiguration (UnitMonitor)

Supervisa el valor Cerrar automáticamente de la base de datos en Windows. Nota: Este monitor está deshabilitado de forma predeterminada. Use invalidaciones para habilitarlo cuando sea necesario.

Knowledge Base article:

Resumen

Este monitor comprueba el valor de cierre automático 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.

La opción AUTO_CLOSE es útil para las bases de datos de escritorio porque permite administrar los archivos de la base de datos como archivos normales. Se pueden mover, copiar para realizar copias de seguridad e incluso enviar por correo electrónico a otros usuarios. No obstante, cuando la base de datos se establece en AUTOCLOSE = ON, una operación que inicia el cierre automático de la base de datos borra la memoria caché del plan para la instancia de SQL Server. Al borrar la memoria caché del plan, se provoca una recompilación de todos los planes de ejecución posteriores y puede ocasionar una disminución repentina y temporal del rendimiento de las consultas.

La creación de reflejo de la base de datos requiere AUTO_CLOSE OFF.

La opción Cerrar automáticamente solo tiene sentido si está seguro de que el patrón de uso de la aplicación mantendrá la base de datos cerrada durante períodos relativamente grandes. Algunas aplicaciones de usuario único y algunas situaciones de hospedaje de base de datos multiinquilino pueden beneficiarse de AUTO_CLOSE ON. Para los demás usos, normalmente, no es una buena idea, a menos que comprenda realmente los patrones de utilización y comportamiento de la aplicación

  • Nota de implementación/diseño: desde los libros en pantalla

  • Si no se ha iniciado la base de datos, las propiedades que Microsoft SQL Server recupera mediante el acceso a la base de datos directamente, en lugar de recuperar el valor de los metadatos, devolverán NULL. Es decir, si la base de datos tiene AUTO_CLOSE establecido en ON, o si, por el contrario, la base de datos está sin conexión.

Configuración

Si el valor de cierre automático se establece en ON, la base de datos se cierra sin problemas y se liberan sus recursos después de que haya salido el último usuario.

AUTO_CLOSE {ON | OFF}

Causas

Si la opción Cerrar automáticamente no coincide con el valor necesario, se generará una alerta de advertencia. De forma predeterminada, este monitor está configurado para generar una alerta cuando este valor se establezca en “ON”.

Resoluciones

Para solucionar este problema puede:

Como alternativa, si este monitor no constituye un problema para esta base de datos:

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Prioridad de la alerta

Define la prioridad de alerta.

Normal

Gravedad de la alerta

Define la gravedad de alerta.

Advertencia

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.

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

Hora de sincronización

Hora de sincronización especificada en un formato de 24 horas. Se puede omitir.

 

Tiempo de espera (segundos)

Especifica el tiempo que el flujo de trabajo se puede ejecutar antes de cerrarlo y marcarlo como erróneo.

300

Tiempo de expiración de la conexión de base de datos (segundos)

Se producirá un error en el flujo de trabajo y se registrará un evento si no puede obtener acceso a la base de datos durante el período especificado.

15

Element properties:

TargetMicrosoft.SQLServer.Windows.Database
Parent MonitorMicrosoft.SQLServer.Windows.Rollup.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Windows.MonitorType.Database.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL en Windows: error de configuración de cierre automático
El valor de cierre automático de la base de datos "{0}" en la instancia de SQL "{1}" del equipo "{2}" no está establecido según el procedimiento recomendado.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.Database.AutoCloseConfiguration" Accessibility="Public" Enabled="false" Target="SqlDiscW!Microsoft.SQLServer.Windows.Database" ParentMonitorID="Microsoft.SQLServer.Windows.Rollup.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.Database.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.Database.AutoCloseConfiguration.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ConfigurationValueOK" MonitorTypeStateID="ConfigurationValueOK" HealthState="Success"/>
<OperationalState ID="ConfigurationValueNotOK" MonitorTypeStateID="ConfigurationValueNotOK" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<ConfigName>AutoClose</ConfigName>
<ExpectedValue>OFF</ExpectedValue>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>