Porcentaje de depósito vacío en el índice de hash

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

Este monitor comprueba el recuento de depósitos vacíos de índice de hash en SQL Database.

Knowledge Base article:

Resumen

Este monitor comprueba el porcentaje de depósito vacío en el índice 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

Cuando cree la tabla con optimización para memoria, debe especificar un valor en el parámetro bucket_count. El monitor genera una alerta de advertencia si empty_bucket_percent es inferior al umbral de porcentaje de depósito vacío. El parámetro bucket_count es demasiado bajo y hay que aumentarlo.

Externo

Ver información más detallada:

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

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.HashIndexEmptyBucketsCount.MonitorType
RemotableTrue
AccessibilityPublic
Alert Message
MSSQL 2016: porcentaje de depósito vacío en el índice de hash
La base de datos "{0}" de la instancia SQL "{1}" del equipo "{2}" contiene tablas con índices en los que el número de depósitos es demasiado bajo y se debería aumentar. {3}
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.Monitoring.HashIndexEmptyBucketsCountMonitor" Accessibility="Public" Enabled="true" Target="SQL2016Core!Microsoft.SQLServer.2016.DBFileGroupFx" ParentMonitorID="SystemHealth!System.Health.ConfigurationState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2016.Monitoring.HashIndexEmptyBucketsCount.MonitorType" ConfirmDelivery="false">
<Category>ConfigurationHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.Monitoring.HashIndexEmptyBucketsCountMonitor.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>
<ErrorTopLines>5</ErrorTopLines>
</Configuration>
</UnitMonitor>