Longitud media de las cadenas de filas en los depósitos de hash

Microsoft.SQLServer.2016.Monitoring.HashIndexAvgChainLengthMonitor (UnitMonitor)

Este monitor comprueba el recuento de depósitos vacíos de índice de hash y el promedio de longitud de las cadenas de fila en SQL Database.

Knowledge Base article:

Resumen

Este monitor comprueba el promedio de longitud de las cadenas de fila en los depósitos de hash para las tablas de esta base de datos. Dado que este monitor forma parte de un requisito de estándares globales, se podría generar una alerta si la configuración no cumple el estándar especificado.

Configuración

Los índices se usan para tener acceso de forma eficiente a los datos de las tablas de SQL Server. Al especificar los índices correctos se puede mejorar considerablemente el rendimiento de las consultas. El monitor genera una alerta de advertencia si empty_bucket_percent es superior al umbral del porcentaje del depósito vacío y avg_chain_length es superior al umbral de longitud de cadena media, si existen demasiados duplicados y el uso del índice NONCLUSTERED sería más apropiado.

Externo

Ver información más detallada:

Indexes for Memory-Optimized Tables (Índices para tablas con optimización para memoria)

Parámetros invalidables

Nombre

Descripción

Valor predeterminado

Prioridad de alerta

Define la prioridad de la alerta.

Normal

Gravedad de alerta

Define la gravedad de la alerta.

Advertencia

Umbral de longitud media de cadena

Umbral del promedio de longitud de cadena que indica la longitud media de las cadenas de filas en los depósitos de hash.

100

Mostrar número de índices

El recuento para mostrar de los índices que no están configurados según el procedimiento recomendado.

5

Umbral de porcentaje de depósito vacío

Umbral del porcentaje de depósito vacío que indica el número de depósitos vacíos en el índice de hash.

10

Habilitado

Habilita o deshabilita el flujo de trabajo.

Genera alertas

Define si el flujo de trabajo genera una alerta.

Intervalo (segundos)

Intervalo de tiempo periódico en segundos en que se ejecuta el flujo de trabajo.

43200

Hora de sincronización

Hora de sincronización especificada en un formato de 24 horas. Se puede omitir.

 

Tiempo de espera (segundos)

Especifica el tiempo durante el que se puede ejecutar el flujo de trabajo antes de que se cierre y se marque como error.

300

Element properties:

TargetMicrosoft.SQLServer.2016.DBFileGroupFx
Parent MonitorSystem.Health.ConfigurationState
CategoryConfigurationHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.Monitoring.HashIndexAvgChainLength.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2016: error de longitud media de las cadenas de fila en los depósitos de hash
La base de datos "{0}" de la instancia SQL "{1}" del equipo "{2}" contiene tablas con índices que incluyen demasiados duplicados, por lo que sería más adecuado utilizar un índice NO AGRUPADO. {3}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Monitoring.HashIndexAvgChainLengthMonitor" Accessibility="Public" Enabled="true" Target="SQL2016Core!Microsoft.SQLServer.2016.DBFileGroupFx" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.Monitoring.HashIndexAvgChainLength.MonitorType" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Monitoring.HashIndexAvgChainLengthMonitor.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</AlertParameter1>
<AlertParameter2>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</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>
<ComputerName>$Target/Host/Host/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<SqlInstanceName>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.ServerRole"]/InstanceName$</SqlInstanceName>
<ConnectionString>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ConnectionString$</ConnectionString>
<ServiceName>$Target/Host/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.DBEngine"]/ServiceName$</ServiceName>
<DatabaseName>$Target/Host/Property[Type="SQL2016Core!Microsoft.SQLServer.2016.Database"]/DatabaseName$</DatabaseName>
<IntervalSeconds>43200</IntervalSeconds>
<TimeoutSeconds>300</TimeoutSeconds>
<SyncTime/>
<EmptyBucketPercentThreshold>10</EmptyBucketPercentThreshold>
<AvgChainLengthThreshold>100</AvgChainLengthThreshold>
<ErrorTopLines>5</ErrorTopLines>
</Configuration>
</UnitMonitor>