Der Monitor warnt, wenn die Anzahl von 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 ohne einen Verlust der erforderlichen Funktionalität für die Anwendungen verbessert werden kann, die die Daten nutzen.
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 Parallelität zu erhöhen und Blockierungen aufgrund von Ressourcenkonflikten zu vermeiden. 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 (Kapitel 3 im Allgemeinen und Abschnitt 3.8 zu den Überlegungen zur Mehrbenutzerleistung im Besonderen) 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.
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 Aufträge mit langer Ausführungszeit auf dem Server können durch Änderungen des Entwurfs oder der Konfiguration verbessert werden. Solche Aufträge können für Zeiten geplant werden, zu denen eine Blockierung geringere Auswirkungen hat. Darüber hinaus können dem Server zusätzliche Ressourcen hinzugefügt werden, wenn bei einer Überprüfung der Leistungsindikatoren erkannt wird, dass Leistungsengpässe zu langfristigen Blockierungen führen.
Erhöhen Sie den konfigurierten Schwellenwert und/oder die Einstellung "Wartezeit in Minuten" (WaitMinutes), 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 |
Anzahl der Stichproben | Der Integritätsstatus ändert sich, wenn die Anzahl von Schwellenwertverletzungen höher als die Mindestanzahl von Verletzungen ist oder dieser entspricht. | 4 |
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 |
Timeout (Sekunden) | Gibt die Zeit an, die der Workflow ausgeführt werden darf, bevor er geschlossen und als fehlgeschlagen markiert wird. | 300 |
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/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>