Problembeschreibung
Angenommen, Sie verwenden eine Instanz von Microsoft SQL Server 2016 Analysis Services. Während immer mehr globale Bereichsobjekte zwischengespeichert werden, werden diese Caches nie bereinigt. Dies kann zu einem kontinuierlichen Wachstum des Arbeitsspeichers führen, und schließlich kann der Server abstürzen. Die globalen Bereiche werden basierend auf den Sicherheitsanforderungen für jeden Benutzer zwischengespeichert. Daher wird dieses Problem in der Regel nur dann auftreten, wenn Sie eines der folgenden Szenarien erleben:
-
Sie verfügen über dynamische Ausdrücke (beispielsweise username (), CustomData ()) im Modell. Dies ist nicht zwingend erforderlich, um das Problem zu erkennen, aber es ist eine häufige Ursache. Wenn dynamische Ausdrücke vorhanden sind, muss jeder einzelne Benutzer seinen eigenen eindeutigen globalen Bereich erstellen. Dies führt zu einer signifikanten Erhöhung der Anzahl globaler Bereiche, die erstellt und zwischengespeichert werden müssen.
-
Sie verfügen über ein komplexes Modell mit vielen Metadaten und Sicherheit. Dies wirkt sich auf die Kosten von Arbeitsspeicher pro Scope-Objekt aus. Mit zunehmender Anzahl von zwischengespeicherten globalen Bereichen wächst der Speicherbedarf basierend auf den Speicherkosten pro Scope-Objekt.
-
Sie haben viele eindeutige Benutzer, die eine Verbindung mit dem Server herstellen. Beispielsweise kann PowerBI.com Kacheln im Dashboard für jeden Benutzer nach einem häufigen Zeitplan aktualisieren. In diesem Fall empfängt Analysis Services viele Verbindungen und Abfragen für jeden eindeutigen Benutzer, und die Anzahl der globalen Bereiche wird hochgeladen, und es werden viele Arbeitsspeicher benötigt.
Hinweis: Nachdem Sie diesen Hotfix angewendet haben, wird die SQL Server-Version 13.0.2170.0.
Fehlerbehebung
Informationen zum kumulativen Update
Der Fix für dieses Problem ist im folgenden kumulativen Update für SQL Server enthalten:
Jedes neue kumulative Update für SQL Server enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen kumulativen Update enthalten waren. Schauen Sie sich die neuesten kumulativen Updates für SQL Server an:
Problemumgehung
Um dieses Problem zu umgehen, führen Sie manuell einen <ClearCache> XMLA-Befehl für die Datenbank nach einem geeigneten Zeitplan aus. Dadurch können alle globalen Bereichs Caches gelöscht werden, und der Arbeitsspeicher würde erneut reduziert. Diese Option führt zu einigen Leistungseinbußen, wenn Sie das nächste Mal eine Verbindung herstellen, da Sie den zwischengespeicherten globalen Bereich nicht wieder verwenden können.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Informationsquellen
Erfahren Sie mehr über die Terminologie , mit der Microsoft Softwareupdates beschreibt.