Konfiguration für "Automatisch schließen"

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

Überwacht die Einstellung für "Automatisch schließen" für die Datenbank

Knowledge Base article:

Zusammenfassung

Dieser Monitor überprüft die Einstellung "Automatisch schließen" für diese Datenbank. Da dieser Monitor zu einer Gesamtstandardanforderung gehört, wird eine Warnung generiert, wenn die Einstellung nicht dem angegebenen Standard entspricht.

Die Option AUTO_CLOSE ist sehr nützlich für Desktopdatenbanken, da mit ihrer Hilfe Datenbankdateien wie reguläre Dateien verwaltet werden können. Sie können verschoben, zur Sicherung kopiert oder sogar per E-Mail an andere Benutzer gesendet werden. Wenn die Datenbank jedoch auf AUTOCLOSE = ON festgelegt ist, wird mit einem Vorgang, bei dem das automatische Beenden der Datenbank initiiert wird, der Plancache für die Instanz von SQL Server gelöscht. Durch das Löschen des Plancaches wird eine Neukompilierung aller nachfolgenden Ausführungspläne ausgelöst, und möglicherweise kommt es zu einer plötzlichen, vorübergehenden Beeinträchtigung der Abfrageleistung.

Für die Datenbankspiegelung muss AUTO_CLOSE deaktiviert sein (OFF).

AUTO_CLOSE macht nur Sinn, wenn Sie sicher sind, dass die Datenbank aufgrund des Anwendungsverwendungsmusters für relativ lange Zeiträume geschlossen sein wird. In einigen Einzelbenutzeranwendungen und in einigen Situationen, in denen die Datenbank für mehrere Mandanten gehostet wird, kann das automatische Schließen (AUTO_CLOSE = ON) vorteilhaft sein. Für alle anderen Verwendungsfälle ist das automatische Schließen im Allgemeinen nicht empfehlenswert, es sei denn, das Anwendungsverhalten und die Verwendungsmuster sind Ihnen geläufig.

  • Entwurfs-/Implementierungshinweis aus der Onlinedokumentation

  • Wenn die Datenbank nicht gestartet wird, geben die Eigenschaften, die Microsoft SQL Server durch direkten Zugriff auf die Datenbank anstatt durch Abrufen des Werts aus den Metadaten abruft, NULL zurück. Das heißt, wenn für die Datenbank AUTO_CLOSE auf ON festgelegt wurde oder die Datenbank offline ist.

Konfiguration

Wenn die Einstellung "Automatisch schließen" auf ON festgelegt wurde, wird die Datenbank heruntergefahren, und die Ressourcen werden freigegeben, wenn der letzte Benutzer die Datenbank beendet hat.

AUTO_CLOSE {ON | OFF}

Ursachen

Es wird eine Warnung ausgelöst, wenn die Option "Automatisch schließen" nicht der erforderlichen Einstellung entspricht. Der Monitor ist standardmäßig so konfiguriert, dass eine Warnung ausgegeben wird, wenn diese Einstellung auf ON festgelegt wurde.

Lösungen

Dieses Problem können Sie möglicherweise durch eine der folgenden Aktionen beheben:

Wenn dieser Monitor für diese Datenbank nicht relevant ist, haben Sie zudem folgende Möglichkeiten:

Überschreibbare Parameter

Name

Beschreibung

Standardwert

Warnungspriorität

Definiert die Warnungspriorität.

Normal

Warnungsschweregrad

Definiert den Warnungsschweregrad.

Warnung

Überprüfung für SQL Express deaktivieren

Aktiviert oder deaktiviert die Überprüfung der SQL Express-Version.

Ja

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Nein

Erwarteter Wert

Im Wissensabschnitt dieses Monitors werden unter "Konfiguration" die möglichen Werte angezeigt.

AUS

Generiert Warnungen

Definiert, ob der Workflow eine Warnung generiert.

Ja

Intervall (Sekunden)

Das wiederkehrende Zeitintervall in Sekunden, in dem der Workflow ausgeführt wird.

43200

Timeout (Sekunden)

Gibt an, wie lange der Workflow ausgeführt werden darf, bevor er geschlossen und als fehlerhaft markiert wird.

300

Element properties:

TargetMicrosoft.SQLServer.2012.Database
Parent MonitorMicrosoft.SQLServer.2012.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2012.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
Fehler bei der Konfiguration für "Automatisch schließen"
Die Einstellung für "Automatisch schließen" der Datenbank "{0}" in SQL-Instanz "{1}" auf Computer "{2}" ist nicht gemäß Best Practices festgelegt.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2012.Database.Configuration.AutoClose" Accessibility="Public" Enabled="false" Target="SQL2012Core!Microsoft.SQLServer.2012.Database" ParentMonitorID="Microsoft.SQLServer.2012.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2012.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2012.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>