Controlla l'impostazione di chiusura automatica per il database
Questo monitoraggio controlla l'impostazione Chiusura automatica per il database. Poiché tale monitoraggio appartiene a requisiti standard complessivi, se l'impostazione non corrisponde allo standard specificato verrà generato un avviso.
L'opzione AUTO_CLOSE è utile per i database desktop perché consente di gestire i file di database come normali file. I file possono essere spostati, copiati per creare backup o anche inviati tramite posta elettronica ad altri utenti. Tuttavia, quando il database è impostato su AUTOCLOSE = ON, un'operazione che avvia un arresto automatico del database comporta la cancellazione della cache dei piani per l'istanza di SQL Server. La cancellazione della cache dei piani comporta la ricompilazione di tutti i piani di esecuzione successivi e può causare un improvviso peggioramento temporaneo delle prestazioni di esecuzione delle query
Per il mirroring del database è necessario che AUTO_CLOSE sia OFF.
L'utilizzo dell'impostazione di chiusura automatica risulta appropriato solo se si è certi che il modello di utilizzo dell'applicazione manterrà chiuso il database per periodi di tempo relativamente lunghi. L'utilizzo dell'opzione AUTO_CLOSE impostata su ON potrebbe risultare vantaggioso in alcune situazioni in cui sono ospitati applicazioni in modalità utente singolo e database multi-tenancy. In tutti gli altri casi, un simile uso non è in genere consigliato, a meno che non si conoscano a fondo il comportamento dell'applicazione e i modelli di utilizzo.
|
Se il valore di Chiusura automatica è impostato su ON, il database viene arrestato normalmente e le risorse corrispondenti vengono liberate dopo la disconnessione dell'ultimo utente.
AUTO_CLOSE {ON | OFF}
Se l'impostazione dell'opzione Auto Close non corrisponde alla quella richiesta, verrà generato un messaggio di avviso. Il monitoraggio è configurato per generare un avviso quando il valore di questa impostazione è "ON".
Per risolvere il problema, effettuare una delle operazioni seguenti:
Modificare l'impostazione di configurazione per il database in modo che corrisponda al valore previsto.
Ignorare il valore previsto per il monitoraggio dell'unità per questo database specifico o per tutti i database.
In alternativa, se il monitoraggio non rappresenta un problema per il database, effettuare una delle operazioni seguenti:
Disabilitare il monitoraggio utilizzando le sostituzioni per questo database specifico o per tutti i database.
Disabilitare il monitoraggio della configurazione delle funzioni di aggregazione di livello principale utilizzando le sostituzioni per questo database specifico o per tutti i database.
Nome | Descrizione | Valore predefinito |
Priorità avviso | Definisce la priorità dell'avviso. | Normale |
Gravità avviso | Definisce la gravità dell'avviso. | Avviso |
Disabilita controllo per SQL Express | Abilita o disabilita il controllo della versione di SQL Express. | Sì |
Abilitato | Abilita o disabilita il flusso di lavoro. | No |
Valore previsto | Per visualizzare il set di valori possibili, vedere la sezione "Configurazione" nella documentazione relativa a questo monitoraggio. | NO |
Genera avvisi | Definisce se il flusso di lavoro genera un avviso. | Sì |
Intervallo (secondi) | Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro. | 43200 |
Timeout (secondi) | Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito. | 300 |
Target | Microsoft.SQLServer.2012.Database | ||
Parent Monitor | Microsoft.SQLServer.2012.Database.AutomaticConfiguration | ||
Category | ConfigurationHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2012.DBConfigurationStatus | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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>