Configuration de la mise à jour automatique des statistiques asynchrone

Microsoft.SQLServer.2005.Database.Configuration.AutoUpdateStatAsync (UnitMonitor)

Analyse le paramètre de mise à jour automatique des statistiques asynchrone de la base de données

Knowledge Base article:

Résumé

Cette analyse vérifie le paramètre Mise à jour automatique des statistiques de manière asynchrone de cette base de données. Étant donné que cette analyse fait partie de spécifications de normes globales, une alerte est générée si le paramètre ne répond pas à la norme spécifiée.

Configuration

Lorsque le paramètre Mise à jour automatique des statistiques de manière asynchrone a la valeur ON, les mises à jour des statistiques pour l'option AUTO_UPDATE_STATISTICS sont asynchrones. L'optimiseur de requête n'attend pas la fin des mises à jour des statistiques pour compiler les requêtes. Affecter la valeur ON à cette option n'a aucun effet à moins que AUTO_UPDATE_STATISTICS n'ait également la valeur ON.

AUTO_UPDATE_STATISTICS_ASYNC {ON | OFF}

Causes

Une alerte d'avertissement sera déclenchée si l'option ne correspond pas au paramètre requis. Cette analyse immédiatement utilisable permet d'envoyer une alerte lorsque ce paramètre a la valeur ON.

La raison de l'affectation de la valeur OFF par défaut à cette option de base de données est la compatibilité descendante avec les applications existantes. Étant donné que les requêtes n'attendent ni ne bloquent de mises à jour de statistiques, les performances peuvent être temporairement modifiées si une requête est compilée et exécutée avec d'anciennes statistiques. Une fois la mise à jour des statistiques terminée, la même requête est recompilée avec les statistiques mises à jour avant l'exécution suivante. Toutefois, pendant la mise à jour des statistiques, la requête peut subir des problèmes de performances temporaires, car elle a été compilée avec d'anciennes statistiques.

La mise à jour ASYNC est probablement la meilleure option pour la plupart des applications, car elle minimise l'attente et le blocage globaux. Envisagez de lui affecter la valeur ON et, si cela fonctionne pour votre application, désactivez cette analyse d'unités.

Solutions

Ce problème peut être résolu en :

Sinon, si cette analyse n'est pas un critère important pour cette base de données, en :

Externe

Consultez des informations plus détaillées sur ce paramètre : Options SET de ALTER DATABASE (Transact-SQL)

Voir aussi «  Utilisation des statistiques pour améliorer les performances des requêtes »

Element properties:

TargetMicrosoft.SQLServer.2005.Database
Parent MonitorMicrosoft.SQLServer.2005.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2005.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
Erreur de configuration de la mise à jour automatique des statistiques asynchrone
Le paramètre de mise à jour automatique des statistiques asynchrone de la base de données « {0} » de l'instance SQL « {1} » de l'ordinateur « {2} » n'est pas défini selon la meilleure pratique.
RunAsDefault

Source Code:

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