Longueur moyenne des chaînes de lignes dans les compartiments de hachage

Microsoft.SQLServer.Windows.Monitor.DBFilegroupFx.HashIndexAvgChainLength (UnitMonitor)

Ce moniteur vérifie le nombre de compartiments vides de l’index de hachage et la longueur moyenne des chaînes de lignes dans la base de données SQL.

Knowledge Base article:

Récapitulatif

Ce moniteur vérifie la longueur moyenne des chaînes de lignes dans les compartiments de hachage pour les tables de cette base de données. Comme ce moniteur fait partie des conditions générales de la norme spécifiée, une alerte est générée si le paramètre ne satisfait pas à cette norme.

Configuration

Les index permettent d'accéder efficacement aux données contenues dans les tables SQL Server. Vous pouvez améliorer considérablement les performances des requêtes en spécifiant l'index approprié. Le moniteur déclenche une alerte d'avertissement si empty_bucket_percent a une valeur supérieure au Seuil du pourcentage de compartiments vides, si avg_chain_length a une valeur supérieure au Seuil de longueur de chaîne moyenne, s'il y a trop de doublons et si l'utilisation d'un index NONCLUSTERED est inappropriée.

Externe

Consultez les informations détaillées :

Index pour des tables à mémoire optimisée

Paramètres remplaçables

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

Seuil de longueur de chaîne moyenne

Seuil pour la longueur de chaîne moyenne qui indique la longueur maximale des chaînes de lignes dans les compartiments de hachage.

100

Nombre d'affichages d'index

Nombre d’affichages des index non configurés selon les bonnes pratiques.

5

Seuil du pourcentage de compartiments vides

Seuil du pourcentage de compartiments vides qui indique le nombre de compartiments vides dans l’index de hachage.

10

Activé

Active ou désactive le flux de travail.

Oui

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

Element properties:

TargetMicrosoft.SQLServer.Windows.DBFilegroupFx
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.Windows.MonitorType.DBFilegroupFx.HashIndexAvgChainLength
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL sur Windows : Erreur liée à la longueur moyenne des chaînes de lignes des compartiments de hachage
La base de données « {0} » de l'instance SQL « {1} » sur l'ordinateur « {2} » contient des tables dont les index comprennent trop de doublons. L'utilisation d'un index NONCLUSTERED est plus appropriée dans ce cas. {3}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.Windows.Monitor.DBFilegroupFx.HashIndexAvgChainLength" Accessibility="Public" Enabled="true" Target="SqlDiscW!Microsoft.SQLServer.Windows.DBFilegroupFx" ParentMonitorID="Health!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.Windows.MonitorType.DBFilegroupFx.HashIndexAvgChainLength" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.Windows.Monitor.DBFilegroupFx.HashIndexAvgChainLength.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='Status']$</AlertParameter4>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Health" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<MachineName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<InstanceName>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Host/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<MonitoringType>$Target/Host/Host/Property[Type="SqlDiscW!Microsoft.SQLServer.Windows.DBEngine"]/MonitoringType$</MonitoringType>
<DatabaseName>$Target/Host/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.Database"]/DatabaseName$</DatabaseName>
<IntervalSeconds>43200</IntervalSeconds>
<SyncTime/>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<EmptyBucketPercentThreshold>10</EmptyBucketPercentThreshold>
<AvgChainLengthThreshold>100</AvgChainLengthThreshold>
<ErrorTopLines>5</ErrorTopLines>
</Configuration>
</UnitMonitor>