Surveille le paramètre Mise à jour automatique des statistiques pour la base de données. Remarque : Ce moniteur est désactivé par défaut. Utilisez des remplacements pour l'activer en cas de besoin.
Ce moniteur vérifie le paramètre Mise à jour automatique des statistiques de cette base de données. Comme ce moniteur entre dans le cadre d'une exigence de standards globale, une alerte est générée si le paramètre ne répond pas au standard spécifié.
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 « 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.
Quand le paramètre Mise à jour automatique des statistiques est activé, l'optimiseur de requête met à jour les statistiques quand elles sont utilisées par une requête et qu'elles risquent d'être obsolètes. Les statistiques deviennent obsolètes une fois que des opérations d'insertion, de mise à jour, de suppression ou de fusion changent la répartition des données dans la table ou la vue indexée. L'optimiseur de requête détermine que les statistiques risquent d'être 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. Le seuil est basé sur le nombre de lignes dans la table ou la vue indexée. L'optimiseur de requête recherche les 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 pouvant ê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 référence des statistiques à jour. L'option AUTO_UPDATE_STATISTICS s'applique aux statistiques créées pour les index, aux colonnes uniques 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}
Une alerte d'avertissement est déclenchée si l'option ne correspond pas au paramètre demandé. Le moniteur est configuré par défaut pour envoyer une alerte quand ce paramètre est défini sur « OFF ».
Ce problème peut être résolu en :
Changement du paramètre de configuration de cette base de données pour correspondre à la valeur attendue.
Remplacement de la valeur attendue de ce moniteur d'unités pour cette base de données spécifique ou toutes les bases de données.
Sinon, si ce moniteur ne concerne pas cette base de données :
Désactivation du moniteur à l'aide de remplacements pour cette base de données spécifique ou toutes les bases de données.
Désactivation du moniteur de configuration d'agrégat de niveau supérieur à l'aide de remplacements pour cette base de données spécifique ou toutes les bases de données.
Consultez les informations détaillées de ce paramètre : Options ALTER DATABASE SET (Transact-SQL)
Consultez également l'article « Utilisation des statistiques pour améliorer les performances de requête ».
Nom | Description | Valeur par défaut |
Priorité d'alerte | Définit la priorité de l'alerte. | Normale |
Gravité d'alerte | Définit la gravité de l'alerte. | Avertissement |
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) | Intervalle régulier (en secondes) auquel exécuter le flux de travail. | 43200 |
Heure de synchronisation | Heure de la synchronisation spécifiée selon un format de 24 heures. Peut être omise. |
|
Délai d'expiration (secondes) | Spécifie la durée pendant laquelle le flux de travail est autorisé à s'exécuter avant d'être fermé et marqué comme ayant échoué. | 300 |
Délai d’attente pour la connexion de base de données (secondes) | Le workflow échoue et enregistre un événement s’il ne peut pas accéder à la base de données pendant la période spécifiée. | 15 |
Target | Microsoft.SQLServer.Linux.Database | ||
Parent Monitor | Microsoft.SQLServer.Linux.Rollup.Database.AutomaticConfiguration | ||
Category | ConfigurationHealth | ||
Enabled | False | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.Linux.MonitorType.Database.DBConfigurationStatus | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.Linux.Monitor.Database.AutoUpdateStatConfiguration" Accessibility="Public" Enabled="false" Target="SqlDiscL!Microsoft.SQLServer.Linux.Database" ParentMonitorID="Microsoft.SQLServer.Linux.Rollup.Database.AutomaticConfiguration" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Linux.MonitorType.Database.DBConfigurationStatus" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Linux.Monitor.Database.AutoUpdateStatConfiguration.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</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>
<NetbiosComputerName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<DatabaseName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<ConfigName>AutoUpdateStat</ConfigName>
<ExpectedValue>ON</ExpectedValue>
<ConnectionString>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>