Der Monitor meldet eine Warnung, wenn die Speicherbelegungen durch die SSAS-Instanz den konfigurierten Warnungsschwellenwert (WarningThreshold) überschreiten, ausgedrückt als Prozentwert der TotalMemoryLimit-Einstellung für die SSAS-Instanz. Der Monitor meldet eine kritische Warnung, wenn die Belegungen den konfigurierten kritischen Schwellenwert (CriticalThreshold) überschreiten.
Der Monitor meldet eine Warnung, wenn die Speicherbelegungen durch die SSAS-Instanz den konfigurierten Warnungsschwellenwert (WarningThreshold) überschreiten, ausgedrückt als Prozentwert der TotalMemoryLimit-Einstellung für die SSAS-Instanz. Der Monitor meldet eine kritische Warnung, wenn die Belegungen den konfigurierten kritischen Schwellenwert (CriticalThreshold) überschreiten.
Unter bestimmten Umständen kann die TotalMemoryLimit-Einstellung 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 Abfragen, die auf dem Server ausgeführt werden, 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. Nach sowohl gründlicher Betrachtung der zugrunde liegenden Aktivität, durch die die Speicherauslastung verursacht wird, der Anforderungen für die Arbeitsauslastung auf dem Server, der verfügbaren Ressourcen und weiterer Faktoren als auch nach gründlichem Lesen und Erwägen des Leistungshandbuchs für SSAS (mehrdimensional) oder bei Bedarf Nachfrage beim Microsoft-Support, kann das Problem mit einer der folgenden Herangehensweisen behandelt 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 Verarbeitungsaufträ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 Instanzen von SSAS.
Erhöhen Sie TotalMemoryLimit oder die konfigurierten Schwellenwerte für die Warnung, um die Bedingung zu vermeiden.
Deaktivieren Sie den Monitor ganz, wenn die Speicherauslastung auf dem Server nicht relevant ist.
TechNet-Dokumentation zu Analysis Services-Speichereigenschaften
Konfigurationseigenschaften von Analysis Services
Leistungshandbuch 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 | 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 |
Synchronisierungszeit | Die in einem 24-Stunden-Format angegebene Synchronisierungszeit. Kann ausgelassen werden. |
|
Warnungsschwellenwert (%) | 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.2008.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.2008.AnalysisServices.MonitorType.Instance.MemoryUsagePercent | ||
Remotable | True | ||
Accessibility | Public | ||
Alert Message |
| ||
RunAs | Default |
<UnitMonitor ID="Microsoft.SQLServer.2008.AnalysisServices.UnitMonitor.Instance.MemoryUsage" Accessibility="Public" Enabled="true" Target="SQLAS!Microsoft.SQLServer.2008.AnalysisServices.Instance" ParentMonitorID="SystemHealth!System.Health.PerformanceState" Remotable="true" Priority="Normal" TypeID="Microsoft.SQLServer.2008.AnalysisServices.MonitorType.Instance.MemoryUsagePercent" ConfirmDelivery="false">
<Category>PerformanceHealth</Category>
<AlertSettings AlertMessage="Microsoft.SQLServer.2008.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="Above" HealthState="Error"/>
<OperationalState ID="Warning" MonitorTypeStateID="Between" HealthState="Warning"/>
<OperationalState ID="Success" MonitorTypeStateID="Below" HealthState="Success"/>
</OperationalStates>
<Configuration>
<WarningThreshold>80</WarningThreshold>
<CriticalThreshold>95</CriticalThreshold>
<IntervalSeconds>900</IntervalSeconds>
<SyncTime/>
</Configuration>
</UnitMonitor>