Der Monitor gibt eine Warnung aus, wenn die Speicherbelegungen durch die SSAS-Instanz den konfigurierten Warnungsschwellenwert überschreiten. Dieser Wert wird als Prozentsatz der Einstellung des Gesamtspeicherlimits für die SSAS-Instanz ausgedrückt. Der Monitor gibt eine kritische Warnung aus, wenn die Belegungen den konfigurierten kritischen Schwellenwert überschreiten.
Der Monitor gibt eine Warnung aus, wenn die Speicherbelegungen durch die SSAS-Instanz den konfigurierten Warnungsschwellenwert überschreiten. Dieser Wert wird als Prozentsatz der Einstellung des Gesamtspeicherlimits für die SSAS-Instanz ausgedrückt. Der Monitor gibt eine kritische Warnung aus, wenn die Belegungen den konfigurierten kritischen Schwellenwert überschreiten.
Unter bestimmten Umständen kann die Einstellung des Gesamtspeicherlimits von SSAS nahezu erreicht oder überschritten werden. In manchen Fällen benötigt ein einzelner Vorgang mehr Speicher als durch das Limit vorgegeben, und trotz aller Bemühungen des Servers, Speicher von anderen, weniger dringenden Tasks freizugeben, kann es mitunter vorkommen, dass die Belegungen die konfigurierten Limits überschreiten müssen, da es andernfalls zwangsläufig zu einem Fehler bei dem Vorgang kommt.
Dies kann beim Verarbeiten von großen Dimensionen oder Faktendaten auftreten, insbesondere wenn Attribute mit Datentypen vorhanden sind, die viel Platz belegen (z. B. lange Zeichenfolgen, Binärdaten usw.), oder wenn die Dimension zahlreiche Mitglieder enthält. Auch können auf dem Server ausgeführte Abfragen sehr viel Platz belegen, insbesondere wenn mehrere Dimensionen kreuzverknüpft werden oder erhebliche Berechnungen zur Ableitung von Ergebnissen für Zellen erforderlich sind, die nicht schon vorher von einem vorausschauenden Administrator aggregiert wurden oder einfach nicht im Voraus aggregiert werden können.
Wenn die Speicherlimits auf einem Server überschritten werden, stehen Administratoren zur Lösung des Problems zahlreiche Herangehensweisen zur Verfügung. Administratoren sollten die zugrunde liegende Aktivität, durch die die Speicherauslastung verursacht wird, die Anforderungen an die Arbeitsauslastung auf dem Server, die verfügbaren Ressourcen und weitere Faktoren analysieren. Ebenso sollten sie das Handbuch zur Leistung mehrdimensionaler SSAS-Datenbanken lesen und erwägen und sich bei Bedarf an den Microsoft Support wenden. Dann kann das Problem mit einer der folgenden Herangehensweisen gelöst werden.
Identifizieren Sie die für die höchsten Speicherbelegungen verantwortlichen Sitzungen, und beenden Sie sie manuell.
Identifizieren Sie die für die höchsten Speicherbelegungen verantwortlichen Sitzungen, und behandeln Sie sie einzelfallbezogen: Planen Sie die Verarbeitung von Aufträge und Berichte neu, nehmen Sie zu Zeiten geringerer Auslastung Vorabzuweisungen mittels Aufwärmabfragen für den Cache vor, oder entwerfen Sie bestimmte Aggregationen im Voraus, die während der Verarbeitung erstellt werden und so anschließend die Speicherbelegung durch Benutzerabfragen verringern.
Erhöhen Sie den physischen Speicher auf dem Hostcomputer.
Verringern Sie die Speicherauslastung durch andere Prozesse auf dem Hostcomputer wie z. B. Instanzen des relationalen SQL Server-Datenbankmoduls oder andere SSAS-Instanzen.
Erhöhen Sie das Gesamtspeicherlimit oder die konfigurierten Schwellenwerte für die Warnung, um die Bedingung zu vermeiden.
Deaktivieren Sie den Monitor vollständig, wenn die Speicherauslastung auf dem Server nicht relevant ist.
Überlegungen zur Speicherkonfiguration und Speichergröße in SQL Server 2014
TechNet-Dokumentation zu Analysis Services-Speichereigenschaften
Konfigurieren von Servereigenschaften in Analysis Services
TechNet-Dokumentation zu Leistungsindikatoren (SSAS)
Leitfaden zur Leistung für SSAS (mehrdimensional)
Name | Beschreibung | Standardwert |
Kritischer Schwellenwert (%) | Der Integritätsstatus ändert sich in "Kritisch", wenn die Speicherauslastung durch Analysis Services (%) den Schwellenwert überschreitet. | 95 |
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 der Schwellenwertverletzungen höher als die Mindestanzahl der Verletzungen oder gleich der Mindestanzahl der Verletzungen ist. | 4 |
Synchronisierungszeit | Die in einem 24-Stunden-Format angegebene Synchronisierungszeit. Kann ausgelassen werden. |
|
Timeout (Sekunden) | Gibt die Zeit an, die der Workflow ausgeführt werden darf, bevor er geschlossen und als fehlgeschlagen markiert wird. | 300 |
Schwellenwert für Warnung (%) | Der Integritätsstatus ändert sich in "Warnung", wenn die Speicherauslastung durch Analysis Services (%) den Schwellenwert überschreitet, aber noch unter dem kritischen Schwellenwert (%) liegt. | 80 |
Target | Microsoft.SQLServer.2014.AnalysisServices.Instance | ||
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.Instance.MemoryUsagePercent | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.Instance.MemoryUsage" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2014.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2014.AnalysisServices.MonitorType.Instance.MemoryUsagePercent" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2014.AnalysisServices.UnitMonitor.Instance.MemoryUsage.AlertMessage">
<AlertOnState>Error</AlertOnState>
<AutoResolve>true</AutoResolve>
<AlertPriority>Normal</AlertPriority>
<AlertSeverity>Error</AlertSeverity>
<AlertParameters>
<AlertParameter1>$Data/Context/Property[@Name='MemoryLimitHighGB']$</AlertParameter1>
<AlertParameter2>$Data/Context/Property[@Name='MemoryLeavesForOsGB']$</AlertParameter2>
<AlertParameter3>$Data/Context/Property[@Name='TotalPhysicalMemoryGB']$</AlertParameter3>
<AlertParameter4>$Data/Context/Property[@Name='MemoryUsageGB']$</AlertParameter4>
<AlertParameter5>$Data/Context/Property[@Name='MemoryUsageByOtherProcessGB']$</AlertParameter5>
<AlertParameter6>$Data/Context/Property[@Name='UsedPhysicalMemoryGB']$</AlertParameter6>
<AlertParameter7>$Data/Context/Property[@Name='MemoryLimitLowGB']$</AlertParameter7>
<AlertParameter8>$Data/Context/Property[@Name='MemoryLimitLowPercent']$</AlertParameter8>
<AlertParameter9>$Data/Context/Property[@Name='MemoryLimitHighPercent']$</AlertParameter9>
</AlertParameters>
</AlertSettings>
<OperationalStates>
<OperationalState ID="Error" MonitorTypeStateID="Critical" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Warning" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Success" HealthState="Success"/>
</OperationalStates>
<Configuration>
<CriticalThreshold>95</CriticalThreshold>
<WarningThreshold>80</WarningThreshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
<TimeoutSeconds>300</TimeoutSeconds>
</Configuration>
</UnitMonitor>