Sessions de blocage

Microsoft.SQLServer.2008.DBEngine.BlockedSPIDsMonitor (UnitMonitor)

Surveille les sessions bloquées d'une instance SQL.

Knowledge Base article:

Résumé

L'analyse des sessions de blocage détecte les situations de blocage.

Un blocage se produit quand une session détient un verrou sur une ressource spécifique et qu'une autre session tente d'acquérir 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 relationnelle (SGBDR) avec concurrence basée sur les verrous. Un trop grand nombre de blocages peut cependant provoquer des problèmes de performances.

Causes

Quand le verrouillage et le blocage prennent une ampleur telle que les performances du système sont considérablement affectées, la raison en est généralement une des suivantes :

Solutions

Si des sessions bloquées ne sont pas un problème pour la base de données, vous pouvez aussi :

Voir aussi : «  INF : Présentation et résolution des problèmes de blocage de SQL Server »

Paramètres remplaçables

Nom

Description

Valeur par défaut

Priorité de l'alerte

Définit la priorité de l'alerte.

Élevé

Gravité de l'alerte

Définit la gravité de l'alerte.

Erreur

Activé

Active ou désactive le flux de travail.

Non

Génère des alertes

Définit si le flux de travail génère une alerte.

Oui

Intervalle (en secondes)

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

300

Nombre de sessions bloquées

Nombre de sessions bloquées.

1

Heure de synchronisation

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

 

Délai d'expiration (en 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

Délai d'attente (minutes)

Durée d'exécution minimale du processus avant sa prise en compte pour une analyse des SPID bloqués.

1

Element properties:

TargetMicrosoft.SQLServer.2008.DBEngine
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2008.DBEngine.BlockedSPIDs
RemotableTrue
AccessibilityPublic
Alert Message
Session(s) bloquée(s)
La ou les sessions {0} de l'instance SQL « {1} » de l'ordinateur « {2} » sont bloquées. Pour plus d'informations, consultez l'onglet « contexte de l'alerte ».
RunAsDefault

Source Code:

<UnitMonitor ID="Microsoft.SQLServer.2008.DBEngine.BlockedSPIDsMonitor" Accessibility="Public" Enabled="false" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.DBEngine.BlockedSPIDs" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.DBEngine.BlockedSPIDsMonitor.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>High</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='BlockedSPIDList']$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</AlertParameter2>
<AlertParameter3>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</AlertParameter3>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Blocked" MonitorTypeStateID="Blocked" HealthState="Error"/>
<OperationalState ID="NotBlocked" MonitorTypeStateID="NotBlocked" HealthState="Success"/>
</OperationalStates>
<Configuration>
<ConnectionString>$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ConnectionString$</ConnectionString>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<WaitMinutes>1</WaitMinutes>
<NumberBlockedSPIDs>1</NumberBlockedSPIDs>
<TimeoutSeconds>300</TimeoutSeconds>
<InstanceName>$Target/Property[Type="SQL!Microsoft.SQLServer.ServerRole"]/InstanceName$</InstanceName>
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
</Configuration>
</UnitMonitor>