Controlla l'impostazione di aggiornamento automatico asincrono statistiche per il database
Questo monitoraggio controlla l'impostazione Aggiornamento statistiche asincrono automatico per il database. Poiché tale monitoraggio appartiene a requisiti standard complessivi, se l'impostazione non corrisponde allo standard specificato verrà generato un avviso.
Se l'opzione Aggiornamento automatico asincrono statistiche è impostata su ON, gli aggiornamenti delle statistiche per l'opzione AUTO_UPDATE_STATISTICS saranno asincroni. Query Optimizer non attende il completamento degli aggiornamenti delle statistiche per compilare le query. L'impostazione di questa opzione su ON non produce alcun effetto, a meno che AUTO_UPDATE_STATISTICS non sia impostata su ON.
AUTO_UPDATE_STATISTICS_ASYNC {ON | OFF}
Se l'impostazione dell'opzione non corrisponde a quella richiesta, verrà generato un messaggio di avviso. Il monitoraggio è configurato per generare un avviso quando il valore di questa impostazione è "ON".
L'impostazione predefinita di questa opzione di database corrisponde a OFF in modo da garantire la compatibilità con le versioni precedenti per le applicazioni esistenti. Poiché le query non vengono bloccate né rimangono in attesa di aggiornamenti delle statistiche, è possibile che si verifichino variazioni temporanee nelle prestazioni quando una query viene compilata ed eseguita con statistiche meno recenti. Dopo l'aggiornamento delle statistiche, sarà possibile ricompilare la stessa query in base alle statistiche aggiornate prima della successiva esecuzione. Durante l'aggiornamento delle statistiche, potrebbero tuttavia verificarsi problemi di prestazioni momentanei della query in quanto compilata in base a statistiche meno recenti.
L'aggiornamento asincrono costituisce probabilmente la scelta ideale per la maggior parte delle applicazioni, poiché consente di ridurre al minimo i tempi di blocco e di attesa generali. Valutare l'opportunità di impostare l'opzione su ON e, se risulta appropriato per l'applicazione in uso, disabilitare questo monitoraggio unità.
Per risolvere il problema, procedere nel modo seguente:
Modificare l'impostazione di configurazione per il database in modo che corrisponda al valore previsto.
Eseguire l'override del 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, procedere nel modo seguente:
Disabilitare il monitoraggio usando gli override per questo database specifico o per tutti i database.
Disabilitare il monitoraggio della configurazione delle funzioni di aggregazione di livello principale usando gli override per questo database specifico o per tutti i database.
Per altre informazioni su questa impostazione, vedere Opzioni ALTER DATABASE SET (Transact-SQL)
Vedere anche " Utilizzo di statistiche per migliorare le prestazioni di esecuzione delle query”
Target | Microsoft.SQLServer.2005.Database | ||
Parent Monitor | Microsoft.SQLServer.2005.Database.AutomaticConfiguration | ||
Category | ConfigurationHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2005.DBConfigurationStatus | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2005.Database.Configuration.AutoUpdateStatAsync" Accessibility="Public" Enabled="false" Target="SQL2005Core!Microsoft.SQLServer.2005.Database" ParentMonitorID="Microsoft.SQLServer.2005.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2005.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2005.Database.Configuration.AutoUpdateStatAsync.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>AutoUpdateAsyncStat</ConfigValue>
<ExpectedValue>OFF</ExpectedValue>
<ExcludeOnExpress>false</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>