Durée de blocage

Microsoft.SQLServer.2016.AnalysisServices.UnitMonitor.MultidimensionalDatabase.BlockingDuration (UnitMonitor)

La surveillance vous alerte si au moins une session est bloquée pour une durée supérieure au seuil configuré.

Knowledge Base article:

Résumé

La surveillance vous alerte quand au moins une session est bloquée pour une durée supérieure au seuil configuré. Le blocage a lieu quand une session maintient un verrou sur une ressource spécifique et qu'une autre session tente d'obtenir un type de verrou en conflit sur la même ressource. Le blocage est une caractéristique inévitable de tout système de gestion de base de données comprenant une concurrence basée sur les verrous. Toutefois, un blocage trop important peut nuire aux performances. L'administrateur peut donc utiliser cette surveillance pour être prévenu quand la situation se prolonge au-delà du seuil configuré.

Causes

Le blocage peut avoir lieu pour plusieurs raisons attendues mais également dans des scénarios au sein desquels il peut être amélioré sans aucune perte de fonctionnalité correspondante requise par l'application consommatrice de données.

Solutions

La résolution des problèmes de blocage sur un serveur demande une connaissance de la charge de travail, des exigences et des utilisateurs, que l'administrateur doit prendre en compte quand il choisit une méthode de résolution. La résolution des problèmes de blocage comprend plusieurs actions possibles, dont voici une liste non exhaustive :

Externe

Configurer les propriétés du serveur dans Analysis Services

Documentation TechNet pour les compteurs de performances SSAS

Guide des performances multidimensionnelles SSAS

CORRECTIF : l'annulation d'une requête MDX contenant de nombreuses clauses GROUP BY dans SSAS 2016 prend plus de temps que prévu

Paramètres remplaçables

Nom

Description

Valeur par défaut

Activé

Active ou désactive le workflow

Oui

Génère des alertes

Définit si le workflow génère une alerte

Oui

Intervalle en secondes

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

900

Heure de synchronisation

L'heure de synchronisation spécifiée dans un format de 24 heures. Peut être omise.

 

Seuil d'avertissement (min)

L'état d'intégrité change si au moins une session est bloquée pour une durée supérieure au seuil.

1

Délai d'attente (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.2016.AnalysisServices.MultidimensionalDatabase
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2016.AnalysisServices.MonitorType.Database.BlockingDuration
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2016 : au moins une session a été bloquée pour une longue durée.
La durée la plus longue de blocage de session SSAS a dépassé {0} min, ce qui est supérieur au seuil d'alerte configuré.
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2016.AnalysisServices.UnitMonitor.MultidimensionalDatabase.BlockingDuration" Accessibility="Public" Enabled="true" Remotable="true" Priority="Normal" Target="SQLAS!Microsoft.SQLServer.2016.AnalysisServices.MultidimensionalDatabase" TypeID="Microsoft.SQLServer.2016.AnalysisServices.MonitorType.Database.BlockingDuration" ParentMonitorID="SystemHealth!System.Health.PerformanceState" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2016.AnalysisServices.UnitMonitor.Database.BlockingDuration.AlertMessage">
<AlertOnState>Warning</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Warning</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='WaitTime']$</AlertParameter1>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Success" MonitorTypeStateID="Healthy" HealthState="Success"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
</OperationalStates>
<Configuration>
<ServiceName>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Instance']/ServiceName$</ServiceName>
<ConnectionString>$Target/Host/Property[Type='SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Instance']/ConnectionString$</ConnectionString>
<DatabaseName>$Target/Property[Type="SQLAS!Microsoft.SQLServer.2016.AnalysisServices.Database"]/DatabaseName$</DatabaseName>
<Threshold>1</Threshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>