Décompte de sessions de blocage

Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.TabularDatabase.BlockedSessionsNumber (UnitMonitor)

L'analyse vous alerte lorsque le nombre de sessions bloquées pour une durée supérieure au paramètre WaitMinutes configuré dépasse le seuil configuré.

Knowledge Base article:

Résumé

L'analyse vous alerte si le nombre de sessions bloquées pour une durée plus longue que le paramètre WaitMinutes configuré dépasse le seuil configuré. Le blocage a lieu lorsqu'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 axée sur les verrous. Toutefois, un blocage excessif peut entraîner des problèmes liés aux performances. Un administrateur peut alors utiliser cette analyse afin de savoir quand ce problème apparaît pour une durée supérieure au paramètre WaitMinutes configuré pour un nombre de sessions supérieur au 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, qu'un administrateur doit prendre en compte lorsqu'il choisit une méthode de résolution. La résolution des problèmes de blocage comprend de nombreuses actions possibles, notamment :

Externe

Configuration des propriétés du serveur dans Analysis Services

Documentation TechNet pour les compteurs de performances SSAS

Guide des performances multidimensionnelles SSAS

Paramètres remplaçables

Nom

Description

Valeur par défaut

Activé

Active ou désactive le workflow

Vrai

Génère des alertes

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

Vrai

Intervalle en secondes

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

900

Nombre d'échantillons

L'état d'intégrité change si le nombre de dépassement de seuil est supérieur ou égal au nombre minimal de dépassements.

3

Heure de synchronisation

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

 

Seuil critique

L'état d'intégrité change lorsque le nombre de sessions bloquées dépasse le seuil.

10

Minutes d'attente

Le paramètre Minutes d'attente définit le temps d'attente minimal afin que la sessions soit prise en compte par l'analyse.

1

Element properties:

TargetMicrosoft.SQLServer.2014.AnalysisServices.TabularDatabase
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2014.AnalysisServices.MonitorType.Database.BlockedSessionsNumber
RemotableTrue
AccessibilityPublic
Alert Message
SSAS 2014 : Décompte de sessions de blocage dépassé
{1} sessions ont été bloquées depuis plus de {0} min, ce qui dépasse le seuil configuré pour cette alerte.
RunAsDefault

Source Code:

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