Configuration de la fermeture automatique

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

Analyse le paramètre de fermeture automatique de la base de données

Knowledge Base article:

Résumé

Cette analyse vérifie le paramètre Fermeture automatique de cette base de données. Étant donné que cette analyse fait partie de spécifications de normes globales, une alerte est générée si le paramètre ne répond pas à la norme spécifiée.

L'option AUTO_CLOSE est utile pour les bases de données bureautiques, puisqu'elle permet aux fichiers de base de données d'être gérés comme des fichiers normaux. Ceux-ci peuvent être déplacés, copiés en vue d'une sauvegarde ou même transmis par messagerie électronique à d'autres utilisateurs. Toutefois, lorsque la base de données a la valeur AUTOCLOSE = ON, une opération qui initialise un arrêt de la base de données automatique efface le cache du plan pour l'instance de SQL Server. Cette opération entraîne la recompilation de tous les plans d'exécution ultérieurs et peut entraîner une baisse temporaire et brutale des performances des requêtes

La mise en miroir de bases de données exige AUTO_CLOSE OFF.

La fermeture automatique n'est pertinente que lorsque vous êtes certain que le modèle d'utilisation de l'application maintiendra la base de données fermée pendant des périodes relativement longues. Quelques applications en mode mono-utilisateur et quelques situations d'hébergement de bases de données avec une architecture mutualisée peuvent bénéficier de l'option AUTO_CLOSE ON. Pour toutes les autres utilisations, ce choix n'est généralement pas judicieux sauf si vous maîtrisez réellement les modèles d'utilisation et le comportement des applications

  • Remarque relative à la conception/l'implémentation de la documentation en ligne

  • Si la base de données n'est pas démarrée, les propriétés que Microsoft SQL Server récupère en accédant directement à la base de données au lieu de récupérer la valeur dans les métadonnées retournent NULL. Cette situation se présente lorsque la propriété AUTO_CLOSE de la base de données a la valeur ON ou que la base de données est hors connexion.

Configuration

Lorsque le paramètre Fermeture automatique a la valeur ON, la base de données est arrêtée proprement et ses ressources sont libérées dès que le dernier utilisateur la quitte.

AUTO_CLOSE {ON | OFF}

Causes

Une alerte d'avertissement sera déclenchée si l'option Fermeture automatique ne correspond pas au paramètre requis. Cette analyse immédiatement utilisable permet d'envoyer une alerte lorsque ce paramètre a la valeur ON.

Solutions

Ce problème peut être résolu en :

Sinon, si cette analyse n'est pas un critère important pour cette base de données, en :

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
Erreur de configuration de la fermeture automatique
Le paramètre de fermeture automatique de la base de données « {0} » de l'instance SQL « {1} » de l'ordinateur « {2} » n'est pas défini selon la meilleure pratique.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.Database.Configuration.AutoClose" 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.AutoClose.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>AutoClose</ConfigValue>
<ExpectedValue>OFF</ExpectedValue>
<ExcludeOnExpress>true</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>