Konfiguration für "Automatisch schließen"

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

Überwacht die Einstellung "Automatisch schließen" für die Datenbank. Hinweis: Diese Regel ist standardmäßig deaktiviert. Verwenden Sie, falls erforderlich, Überschreibungen, um diese zu aktivieren.

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 AUTO_CLOSE = 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 tritt plötzlich eine temporäre Verringerung der Abfrageleistung auf.

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:

Parameter, die außer Kraft gesetzt werden können

Name

Beschreibung

Standardwert

Warnungspriorität

Definiert die Warnungspriorität.

Normal

Warnungsschweregrad

Definiert den Warnungsschweregrad.

Warnung

Überprüfung für SQL Express deaktivieren

Dieser Wert kann nur auf "true" oder "false" festgelegt werden. Der Workflow berücksichtigt die SQL Server Express-Edition nicht, wenn der Wert auf "true" festgelegt ist.

Ja

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Nein

Erwarteter Wert

Der erwartete Wert der Einstellung für die Datenbankkonfiguration. Informationen zum Anzeigen der geeigneten Werte finden Sie im Abschnitt "Konfiguration" des Knowledge Base-Artikels zu diesem Monitor.

AUS

Generiert Warnungen

Definiert, ob der Workflow eine Warnung generiert.

Ja

Intervall (Sekunden)

Das periodische Intervall in Sekunden, in dem der Workflow ausgeführt werden soll.

43200

Timeout (Sekunden)

Gibt die Zeit an, die der Workflow ausgeführt werden darf, bevor er geschlossen und als fehlgeschlagen markiert wird.

300

Element properties:

TargetMicrosoft.SQLServer.2016.Database
Parent MonitorMicrosoft.SQLServer.2016.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2016: Konfigurationsfehler beim automatischen Schließen
Die Einstellung zum automatischen Schließen für Datenbank "{0}" in SQL-Instanz "{1}" auf Computer "{2}" entspricht nicht den Empfehlungen.
RunAsDefault

Source Code:

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