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é.
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é.
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.
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 :
Ajustez les paramètres de configuration SSAS afin d'augmenter le parallélisme pour éviter le blocage dû à l'affirmation de ressource. Les modifications de configuration de cette nature ne doivent pas être effectuées sur des bases de données de production ayant un impact commercial moyen ou élevé, sans essai préalable et compréhension totale des implications. Un administrateur doit examiner avec attention le Guide de performances multidimensionnelles SSAS (Chapitre 3 d'un point de vue général, et plus particulièrement la section 3.8 relative aux considérations de performances multi-utilisateurs) avant d'effectuer toute modification de ce type effectuée sans consultation directe et conseils du support de Microsoft, étant donné que, dans le cas contraire, les performances de serveur peuvent diminuer plutôt qu'augmenter.
Améliorez les performances de requête de manière générale pour les requêtes identifiées comme créant des blocages.
Identifiez la session de blocage, y compris l'opération de traitement, réduisez le blocage en planifiant correctement les travaux de traitement, en ajustant les requêtes et en définissant une configuration de délai d'expiration adéquate.
Examinez la conception de base de données en terme d'efficacité. Les longs travaux bloquants sur un serveur peuvent être améliorés par des modifications de conception ou de configuration, afin de réduire leur degré de verrouillage, planifiés pour une période pendant laquelle le blocage ne sera pas si sévère ou des ressources supplémentaires peuvent être ajoutées au serveur si cela est déterminé comme nécessaire par un examen des compteurs de performances, afin de déterminer où les Goulots d'étranglement de performance, menant aux longs scénarios de blocage, ont lieu.
Augmentez le seuil configuré et/ou le paramètre WaitMinutes configuré afin d'éviter cette alerte.
Désactiver l'analyse entièrement si le blocage n'est pas un problème sur le serveur.
Configuration des propriétés du serveur dans Analysis Services
Documentation TechNet pour les compteurs de performances SSAS
Guide des performances multidimensionnelles SSAS
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 |
Target | Microsoft.SQLServer.2014.AnalysisServices.TabularDatabase | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Error | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2014.AnalysisServices.MonitorType.Database.BlockedSessionsNumber | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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>