Sessions de blocage

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

Analyse les sessions bloquées pour une instance SQL.

Knowledge Base article:

Résumé

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

Un blocage se produit lorsqu'une session maintient un verrou sur une ressource spécifique et qu'une deuxième session tente d'acquérir sur la même ressource un type de verrou en conflit. 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 blocage trop important peut toutefois nuire aux performances.

Causes

Lorsque verrouillage et blocage prennent une ampleur telle que les performances se dégradent, la raison en est généralement l'une des suivantes :

Solutions

Sinon, si les sessions bloquées ne représentent pas un critère important pour la base de données :

Voir aussi : «  INF: Understanding and resolving SQL Server blocking problems »

Element properties:

TargetMicrosoft.SQLServer.2005.DBEngine
Parent MonitorSystem.Health.PerformanceState
CategoryPerformanceHealth
EnabledFalse
Alert GenerateTrue
Alert SeverityError
Alert PriorityHigh
Alert Auto ResolveTrue
Monitor TypeMicrosoft.SQLServer.2005.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.2005.DBEngine.BlockedSPIDsMonitor" Accessibility="Public" Enabled="false" Target="SQL2005Core!Microsoft.SQLServer.2005.DBEngine" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2005.DBEngine.BlockedSPIDs" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2005.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>