Der Monitor warnt, wenn mindestens eine Sitzung für einen längeren Zeitraum blockiert ist als für den Schwellenwert konfiguriert.
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.
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.
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:
Passen Sie die SSAS-Konfigurationseinstellungen an, um die Prioritäten für ausgeführte Abfragen zu ändern. Konfigurationsänderungen dieser Art sollten nicht an Produktionsdatenbanken mit mittleren oder erheblichen Geschäftsauswirkungen erfolgen, ohne dass vorher Tests durchgeführt wurden und die Auswirkungen vollständig bekannt sind. Administratoren sollten das Handbuch zur Leistung mehrdimensionaler SSAS-Datenbanken gründlich lesen, bevor sie Änderungen dieser Art ohne direkten Kontakt zum Microsoft Support und ohne dessen Anleitung vornehmen, da sich die Serverleistung andernfalls möglicherweise verschlechtert statt verbessert.
Identifizieren Sie blockierte Sitzungen, und beenden Sie sie manuell. Beachten Sie, dass das Beenden von Abfragen, die schon längere Zeit ausgeführt werden, durch ein bekanntes Problem beim Produkt möglicherweise verhindert wird.
Überprüfen Sie die Effizienz des Datenbankentwurfs. Orientieren Sie sich auch dabei an den nützlichen Empfehlungen zu bewährten Methoden im Leitfaden zur SSAS-Leistung (mehrdimensional). Blockierende Sitzungen mit langer Ausführungszeit auf dem Server können durch Änderungen des Entwurfs oder der Konfiguration optimiert werden, sodass sie weniger sperren. Sie können für Zeiten geplant werden, zu denen Blockierung weniger schwerwiegend auftritt, oder dem Server können zusätzliche Ressourcen hinzugefügt werden, wenn dies bei einer Überprüfung der Leistungsindikatoren auf Leistungsengpässe, die zu den langen Blockierungen geführt haben, als erforderlich erkannt wurde.
Erhöhen Sie den konfigurierten Schwellenwert, um die Warnung zu vermeiden.
Deaktivieren Sie den Monitor vollständig, wenn Blockierungen auf dem Server nicht relevant ist.
Konfigurieren von Servereigenschaften in Analysis Services
TechNet-Dokumentation zu Leistungsindikatoren (SSAS)
Leitfaden zur Leistung für SSAS (mehrdimensional)
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 |
Target | Microsoft.SQLServer.2016.AnalysisServices.MultidimensionalDatabase | ||
Parent Monitor | System.Health.PerformanceState | ||
Category | PerformanceHealth | ||
Enabled | True | ||
Alert Generate | True | ||
Alert Severity | Warning | ||
Alert Priority | Normal | ||
Alert Auto Resolve | True | ||
Monitor Type | Microsoft.SQLServer.2016.AnalysisServices.MonitorType.Database.BlockingDuration | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<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>