Configurazione aggiornamento automatico statistiche asincrono

Microsoft.SQLServer.Windows.Monitor.Database.AutoUpdateStatAsyncConfiguration (UnitMonitor)

Esegue il monitoraggio dell'impostazione di aggiornamento automatico statistiche asincrono per il database. Nota: per impostazione predefinita, questo monitoraggio è disabilitato. Usare gli override per abilitarlo quando necessario.

Knowledge Base article:

Riepilogo

Questo monitoraggio controlla l'impostazione di aggiornamento automatico statistiche asincrono per il database. Poiché tale monitoraggio appartiene a requisiti standard complessivi, se l'impostazione non corrisponde allo standard specificato verrà generato un avviso.

Configurazione

Se l'opzione di aggiornamento automatico statistiche asincrono è 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}

Cause

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à.

Risoluzioni

Per risolvere il problema, effettuare una delle operazioni seguenti:

In alternativa, se il monitoraggio non rappresenta un problema per il database, procedere nel modo seguente:

Esterna

Per informazioni dettagliate su questa impostazione, vedere: Opzioni ALTER DATABASE SET (Transact-SQL)

Vedere anche " Utilizzo di statistiche per migliorare le prestazioni di esecuzione delle query".

Parametri di cui è possibile eseguire l'override

Nome

Descrizione

Valore predefinito

Priorità avviso

Definisce la priorità dell'avviso.

Normale

Gravità avviso

Definisce la gravità dell'avviso.

Avviso

Attivato

Abilita o disabilita il flusso di lavoro.

No

Valore previsto

Valore previsto dell'impostazione di configurazione del database. Per visualizzare il set di valori affidabili, vedere la sezione "Configurazione" nell'articolo della Microsoft Knowledge Base relativo a questo monitoraggio.

NO

Genera avvisi

Definisce se il flusso di lavoro genera un avviso.

Intervallo (secondi)

Intervallo di tempo ricorrente in secondi in cui eseguire il flusso di lavoro.

43200

Tempo di sincronizzazione

Ora di sincronizzazione specificata usando il formato a 24 ore. Può essere omessa.

 

Timeout (secondi)

Specifica il tempo di esecuzione consentito per il flusso di lavoro prima che venga chiuso e contrassegnato come non riuscito.

300

Timeout per la connessione di database (secondi)

Il flusso di lavoro avrà esito negativo e registrerà un evento se non riesce ad accedere al database durante il periodo specificato.

15

Element properties:

TargetMicrosoft.SQLServer.Windows.Database
Parent MonitorMicrosoft.SQLServer.Windows.Rollup.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Windows.MonitorType.Database.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL per Windows: Errore di configurazione dell'impostazione Aggiornamento statistiche asincrono automatico
L'impostazione di aggiornamento automatico statistiche asincrono per il database "{0}" nell'istanza di SQL Server "{1}" nel computer "{2}" non è configurata in base alla procedura consigliata.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.Database.AutoUpdateStatAsyncConfiguration" Accessibility="Public" Enabled="false" Target="SqlDiscW!Microsoft.SQLServer.Windows.Database" ParentMonitorID="Microsoft.SQLServer.Windows.Rollup.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.Database.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.Database.AutoUpdateStatAsyncConfiguration.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="ConfigurationValueOK" MonitorTypeStateID="ConfigurationValueOK" HealthState="Success"/>
<OperationalState ID="ConfigurationValueNotOK" MonitorTypeStateID="ConfigurationValueNotOK" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<ConfigName>AutoUpdateStatAsync</ConfigName>
<ExpectedValue>OFF</ExpectedValue>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>