Configuration de la mise à jour automatique des statistiques

Microsoft.SQLServer.2014.Database.Configuration.AutoUpdateSet (UnitMonitor)

Analyse le paramètre de mise à jour automatique des statistiques de la base de données. Remarque : cette analyse est désactivée par défaut. Utilisez des remplacements afin de l’activer, le cas échéant.

Knowledge Base article:

Résumé

Cette analyse vérifie le paramètre Mise à jour automatique des statistiques 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.

L’optimiseur de requête a besoin de statistiques à jour et précises afin de générer des plans corrects. Dans la plupart des cas, il est préférable de laisser SQL Server gérer les statistiques. Si vous activez les options « Création automatique des statistiques » et « Mise à jour automatique des statistiques », il vous revient de tenir les statistiques à jour dans une certaine mesure. Si vous ne le faites pas, les performances des requêtes seront médiocres. La valeur ON devrait être affectée à ces options pour la plupart des applications.

Configuration

Lorsque le paramètre Mise à jour automatique des statistiques a la valeur ON, l'optimiseur de requête met à jour les statistiques lorsqu'elles sont utilisées par une requête et lorsqu'elles sont peut-être obsolètes. Les statistiques deviennent obsolètes après que des opérations d'insertion, de mise à jour, de suppression ou de fusion ont modifié la distribution des données dans la table ou la vue indexée. L'optimiseur de requête détermine si les statistiques sont obsolètes en comptant le nombre de modifications de données depuis la dernière mise à jour des statistiques et en comparant le nombre de modifications à un seuil. Ce seuil est basé sur le nombre de lignes contenues dans la table ou la vue indexée. L'optimiseur de requête vérifie s'il existe des statistiques obsolètes avant de compiler une requête et avant d'exécuter un plan de requête mis en cache. Avant de compiler une requête, l'optimiseur de requête utilise les colonnes, les tables et les vues indexées du prédicat de requête pour identifier les statistiques susceptibles d'être obsolètes. Avant d'exécuter un plan de requête mis en cache, le moteur de base de données vérifie que le plan de requête fait référence à des statistiques à jour. L'option AUTO_UPDATE_STATISTICS s'applique aux statistiques créées pour les index, aux colonnes uniques contenues dans les prédicats de requête et aux statistiques créées à l'aide de l'instruction CREATE STATISTICS. Cette option s'applique également aux statistiques filtrées.

AUTO_UPDATE_STATISTICS {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 OFF.

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 »

Paramètres remplaçables

Nom

Description

Valeur par défaut

Priorité de l'alerte

Définit la priorité de l'alerte.

Normal

Gravité de l'alerte

Définit la gravité de l'alerte.

Avertissement

Désactiver la vérification pour SQL Express

La valeur ne peut être que « True » ou « False ». Si elle est « True », le flux de travail ne prend pas en compte l’édition SQL Server Express.

Non

Activé

Active ou désactive le flux de travail.

Non

Valeur attendue

Valeur attendue du paramètre de configuration de la base de données. Pour voir l’ensemble des valeurs applicables, consultez la section « Configuration » de l’article de la Base de connaissances de ce moniteur.

ACTIVÉ

Génère des alertes

Définit si le flux de travail génère une alerte.

Oui

Intervalle (en secondes)

L'intervalle de temps récurrent en secondes pendant lequel le workflow est exécuté.

43200

Délai d'expiration (en secondes)

Spécifie la durée pendant laquelle le workflow est autorisé à être exécuté avant d'être fermé et marqué comme un échec.

300

Element properties:

TargetMicrosoft.SQLServer.2014.Database
Parent MonitorMicrosoft.SQLServer.2014.Database.AutomaticConfiguration
CategoryConfigurationHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.DBConfigurationStatus
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2014 : erreur de configuration de la mise à jour automatique des statistiques
Le paramètre de mise à jour automatique des statistiques 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.2014.Database.Configuration.AutoUpdateSet" Accessibility="Public" Enabled="false" Target="SQL2014Core!Microsoft.SQLServer.2014.Database" ParentMonitorID="Microsoft.SQLServer.2014.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.Database.Configuration.AutoUpdateSet.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.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="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.Database"]/DatabaseName$</DatabaseName>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
<ConfigValue>AutoUpdateSet</ConfigValue>
<ExpectedValue>ON</ExpectedValue>
<ExcludeOnExpress>false</ExcludeOnExpress>
<SQLSKU>$Target/Host/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/Edition$</SQLSKU>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>