Blockierungsdauer

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

Der Monitor warnt, wenn mindestens eine Sitzung für einen längeren Zeitraum blockiert ist als für den Schwellenwert konfiguriert.

Knowledge Base article:

Zusammenfassung

Der Monitor warnt, wenn mindestens eine Sitzung länger blockiert ist als für den Schwellenwert konfiguriert. Eine Blockierung tritt auf, wenn eine Sitzung eine bestimmte Ressource sperrt und eine zweite Sitzung versucht, für dieselbe Ressource einen in Konflikt stehenden Sperrtyp anzufordern. Die Blockierung ist ein unvermeidbares Merkmal von Datenbank-Managementsystemen mit sperrbasierter Parallelität. Zu viele Blockierungen können jedoch zu Leistungsproblemen führen. Administratoren können mithilfe dieses Monitors erkennen, wann eine solche Bedingung länger andauert als für den Schwellenwert konfiguriert.

Ursachen

Blockierungen können aus zahlreichen erwartungsgemäßen Gründen auftreten, aber auch in Szenarien, in denen dieser Zustand verbessert werden kann, ohne dass den Daten abrufenden Anwendungen erforderliche Funktionalität verloren geht.

Lösungen

Für das Lösen von Blockierungsproblemen auf einem Server ist Kenntnis der Arbeitsauslastung, der Anforderungen und der Benutzer erforderlich. Ein Administrator muss diese Aspekte bei der Entscheidung über geeignete Maßnahmen zur Wiederherstellung berücksichtigen. Für das Beheben von Blockierungsproblemen kommen zahlreiche Maßnahmen in Betracht, einschließlich der folgenden:

Extern

Konfigurieren von Servereigenschaften in Analysis Services

TechNet-Dokumentation zu Leistungsindikatoren (SSAS)

Leitfaden zur Leistung für SSAS (mehrdimensional)

KORREKTUR: Das Abbrechen einer MDX-Abfrage mit vielen GROUP BY-Klauseln in SSAS 2016 dauert länger als erwartet.

Parameter, die außer Kraft gesetzt werden können

Name

Beschreibung

Standardwert

Aktiviert

Aktiviert oder deaktiviert den Workflow

Ja

Generiert Warnungen

Definiert, ob der Workflow eine Warnung generiert

Ja

Intervall (Sekunden)

Das periodische Intervall in Sekunden, in dem der Workflow ausgeführt werden soll.

900

Synchronisierungszeit

Die in einem 24-Stunden-Format angegebene Synchronisierungszeit. Kann ausgelassen werden.

 

Warnungsschwellenwert (Min.)

Der Integritätsstatus ändert sich, wenn mindestens eine Sitzung länger blockiert ist als durch den Schwellenwert vorgegeben.

1

Timeout (Sekunden)

Gibt die Zeit an, die der Workflow ausgeführt werden darf, bevor er geschlossen und als fehlgeschlagen markiert wird.

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: Mindestens eine Sitzung wurde für längere Zeit blockiert.
Die Dauer der am längsten blockierten SSAS-Sitzung hat {0} Min. überschritten und liegt damit über dem konfigurierten Schwellenwert für die Warnung.
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>