Der Monitor warnt, wenn die Anzahl der Sitzungen, die schon länger blockiert sind als für die Einstellung "Wartezeit in Minuten" (WaitMinutes) konfiguriert, den konfigurierten Schwellenwert überschreitet.
Der Monitor warnt, wenn die Anzahl der Sitzungen, die schon länger blockiert sind als für die Einstellung "Wartezeit in Minuten" (WaitMinutes) konfiguriert, den konfigurierten Schwellenwert überschreitet. 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 bei einer Anzahl von Sitzungen, die höher als der konfigurierte Schwellenwert ist, länger andauert als für die Einstellung "Wartezeit in Minuten" 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 nötig. 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, insbesondere:
Passen Sie die SSAS-Konfigurationseinstellungen an, um die Parallelität zu erhöhen und Blockierungen aufgrund von Ressourcenkonflikten zu vermeiden. Es ist empfehlenswert, Konfigurationsänderungen dieser Art nicht bei Produktionsdatenbanken mit mittleren oder erheblichen Geschäftsauswirkungen vorzunehmen, ohne die Änderungen zuvor zu testen und alle ihre Auswirkungen zu kennen. Administratoren wird empfohlen, den SSAS Multidimensional Performance Guide (Handbuch zur Leistung mehrdimensionaler SSAS-Datenbanken, Kapitel 3 im Allgemeinen und Abschnitt 3.8 zu den Überlegungen zur Mehrbenutzerleistung im Besonderen) gründlich zu lesen, bevor sie Änderungen dieser Art ohne direkten Kontakt zum Microsoft-Support und ohne dessen Anleitung vornehmen, da die Serverleistung andernfalls möglicherweise beeinträchtigt statt verbessert wird.
Verbessern Sie die Leistung von als blockierend erkannten Abfragen im Allgemeinen.
Identifizieren Sie blockierende Sitzungen einschließlich Verarbeitungsvorgänge. Verringern Sie die Blockierungen durch eine geeignete Planung von Verarbeitungsaufträgen, Optimieren der Abfragen und eine geeignete Timeoutkonfiguration.
Überprüfen Sie die Effizienz des Datenbankentwurfs. Blockierende Sitzungen mit langer Ausführungszeit auf dem Server können durch Änderungen des Entwurfs oder der Konfiguration verbessert werden, sodass sie weniger sperren. Sie können für Zeiten geplant werden, zu denen Blockierungen weniger schwerwiegend auftreten, 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 und/oder die Einstellung "Wartezeit in Minuten" (WaitMinutes), um die Warnung zu vermeiden.
Deaktivieren Sie den Monitor ganz, wenn das Blockieren auf dem Server nicht relevant ist.
Konfigurieren von Servereigenschaften in Analysis Services
TechNet-Dokumentation zu Leistungsindikatoren (SSAS)
Leistungshandbuch für SSAS (mehrdimensional)
Name | Beschreibung | Standardwert |
Aktiviert | Aktiviert oder deaktiviert den Workflow | True (wahr) |
Generiert Warnungen | Definiert, ob der Workflow eine Warnung generiert | True (wahr) |
Intervall (Sekunden) | Das periodische Intervall in Sekunden, in dem der Workflow ausgeführt werden soll. | 900 |
Anzahl der Stichproben | Der Integritätsstatus ändert sich, wenn die Anzahl der Schwellenwertverletzungen höher als die Mindestanzahl der Verletzungen oder gleich der Mindestanzahl der Verletzungen ist. | 3 |
Synchronisierungszeit | Die in einem 24-Stunden-Format angegebene Synchronisierungszeit. Kann ausgelassen werden. |
|
Kritischer Schwellenwert | Der Integritätsstatus ändert sich, wenn die Anzahl der blockierten Sitzungen den Schwellenwert überschreitet. | 10 |
Wartezeit in Minuten | Der Parameter "Wartezeit in Minuten" definiert die Mindestwartezeit, bevor die Sitzung vom Monitor in Betracht gezogen wird. | 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>