Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Analysis Services speichert Daten zwischen, um die Abfrageleistung zu steigern. Dieses Thema enthält Empfehlungen für die Verwendung des XMLA ClearCache-Befehls zum Löschen von Caches, die als Reaktion auf eine MDX-Abfrage erstellt wurden. Die Auswirkungen der Ausführung von ClearCache variieren je nachdem, ob Sie ein tabellarisches oder mehrdimensionales Modell verwenden.
Gründe für das Löschen des Caches für mehrdimensionale Modelle
Bei mehrdimensionalen Datenbanken erstellt Analysis Services Caches im Formelmodul beim Auswerten einer Berechnung und im Speichermodul für die Ergebnisse von Dimensionsabfragen und Measuregruppenabfragen. Measure-Gruppenabfragen treten auf, wenn die Formel-Engine Measuredaten für eine Zellkoordinate oder einen Teilwürfel benötigt. Dimensionsabfragen treten auf, wenn unnatürliche Hierarchien abgefragt werden und wenn "Autoexistenz" angewendet wird.
Das Löschen des Caches wird empfohlen, wenn Leistungstests durchgeführt werden. Indem Sie den Cache zwischen Testläufen löschen, stellen Sie sicher, dass das Zwischenspeichern keine Testergebnisse verzerrt, die die Auswirkungen einer Abfrageentwurfsänderung messen.
Gründe für das Löschen des Caches für tabellarische Modelle
Tabellarische Modelle werden in der Regel im Arbeitsspeicher gespeichert, in dem Aggregationen und andere Berechnungen zum Zeitpunkt der Ausführung einer Abfrage ausgeführt werden. Daher wirkt sich der Befehl "ClearCache" auf tabellarische Modelle eingeschränkt aus. Für ein tabellarisches Modell können Daten zu den Analysis Services-Caches hinzugefügt werden, wenn MDX-Abfragen damit ausgeführt werden. Insbesondere können DAX-Measures, auf die von MDX- und Autoexists-Operationen verwiesen wird, die Ergebnisse im Formelcache bzw. im Dimensionscache zwischenspeichern. Bitte beachten Sie jedoch, dass unnatürliche Hierarchien und Abfragen von Maßgruppen keine Ergebnisse in der Speicher-Engine zwischenspeichern. Darüber hinaus ist es wichtig zu erkennen, dass DAX-Abfragen keine Ergebnisse im Formel- und Speichermodul zwischenspeichern. Soweit caches als Ergebnis von MDX-Abfragen vorhanden sind, werden beim Ausführen von ClearCache für ein tabellarisches Modell alle zwischengespeicherten Daten aus dem System ungültig.
Wenn ClearCache ausgeführt wird, werden auch Speichercaches im xVelocity-Speicheranalysemodul (VertiPaq) gelöscht. Das xVelocity-Modul verwaltet einen kleinen Satz zwischengespeicherter Ergebnisse. Wenn ClearCache ausgeführt wird, werden diese Caches im xVelocity-Modul ungültig.
Durch das Ausführen von ClearCache werden auch Restdaten entfernt, die im Arbeitsspeicher verbleiben, wenn ein tabellarisches Modell für DirectQuery den Modus neu konfiguriert wird. Dies ist besonders wichtig, wenn das Modell vertrauliche Daten enthält, die engen Kontrollen unterliegen. In diesem Fall ist das Ausführen von ClearCache eine Vorsorgemaßnahme, die Sie ergreifen können, um sicherzustellen, dass vertrauliche Daten nur dort vorhanden sind, wo sie erwartet werden. Das manuelle Löschen des Caches ist erforderlich, wenn Sie Management Studio verwenden, um das Modell bereitzustellen und den Abfragemodus zu ändern. Im Gegensatz dazu löscht die Verwendung von SQL Server Data Tools zum Angeben DirectQuery des Modells und der Partitionen den Cache automatisch, wenn Sie das Modell wechseln, um diesen Abfragemodus zu verwenden.
Im Vergleich zu Empfehlungen zum Löschen von mehrdimensionalen Modellcaches während des Leistungstests gibt es keine allgemeine Empfehlung zum Löschen von tabellarischen Modellcaches. Wenn Sie die Bereitstellung eines tabellarischen Modells, das vertrauliche Daten enthält, nicht verwalten, gibt es keine bestimmte administrative Aufgabe, die zum Löschen des Caches aufruft.
Löschen des Caches für Analysis Services-Modelle
Verwenden Sie ZUM Löschen des Caches XMLA und SQL Server Management Studio. Sie können den Cache auf Datenbank-, Cube-, Dimensions- oder Tabellenebene löschen oder gruppenebene messen. Die folgenden Schritte zum Löschen des Caches auf Datenbankebene gelten sowohl für mehrdimensionale Modelle als auch für tabellarische Modelle.
Hinweis
Strenge Leistungstests erfordern möglicherweise einen umfassenderen Ansatz zum Löschen des Caches. Anweisungen zum Leeren von Analysis Services- und Dateisystemcaches finden Sie im Abschnitt zum Löschen von Caches im SQL Server 2008 R2 Analysis Services Operations Guide.
Bei mehrdimensionalen und tabellarischen Modellen kann das Löschen einiger dieser Caches ein zweistufiger Prozess sein, der aus dem Ungültigmachen des Caches besteht, wenn ClearCache ausgeführt wird, gefolgt vom Leeren des Caches, wenn die nächste Abfrage empfangen wird. Eine Verringerung des Arbeitsspeicherverbrauchs wird erst dann deutlich, wenn der Cache tatsächlich geleert wird.
Zum Löschen des Caches müssen Sie einen Objektbezeichner für die ClearCache-Anweisung in einer XMLA-Abfrage bereitstellen. Im ersten Schritt in diesem Thema wird erläutert, wie Sie einen Objektbezeichner abrufen.
Schritt 1: Abrufen des Objektbezeichners
Klicken Sie in Management Studio mit der rechten Maustaste auf ein Objekt, wählen Sie "Eigenschaften" aus, und kopieren Sie den Wert aus der ID-Eigenschaft im Eigenschaftenbereich . Dieser Ansatz funktioniert für die Datenbank, den Cube, die Dimension oder die Tabelle.
Um die Measure Group-ID abzurufen, klicken Sie mit der rechten Maustaste auf die Measure Group, und wählen Sie Script Measure Group As aus. Wählen Sie " Erstellen " oder "Ändern" aus, und senden Sie die Abfrage an ein Fenster. Die ID der Maßgruppe wird in der Objektdefinition angezeigt. Kopieren Sie die ID der Objektdefinition.
Schritt 2: Ausführen der Abfrage
Klicken Sie in Management Studio mit der rechten Maustaste auf eine Datenbank, zeigen Sie auf "Neue Abfrage", und wählen Sie "XMLA" aus.
Kopieren Sie das folgende Codebeispiel in das XMLA-Abfragefenster. Ändern Sie
DatabaseIDzur ID der Datenbank auf der aktuellen Verbindung.<ClearCache xmlns="https://schemas.microsoft.com/analysisservices/2003/engine"> <Object> <DatabaseID> Adventure Works DW Multidimensional</DatabaseID> </Object> </ClearCache>Alternativ können Sie den Pfad eines untergeordneten Objekts angeben, wie etwa einer Maßgruppe, um den Cache nur für dieses Objekt zu leeren.
<ClearCache xmlns="https://schemas.microsoft.com/analysisservices/2003/engine"> <Object> <DatabaseID>Adventure Works DW Multidimensional</DatabaseID> <CubeID>Adventure Works</CubeID> <MeasureGroupID>Fact Currency Rate</MeasureGroupID> </Object> </ClearCache>Drücken Sie F5, um die Abfrage auszuführen. Sie sollten das folgende Ergebnis sehen:
<return xmlns="urn:schemas-microsoft-com:xml-analysis"> <root xmlns="urn:schemas-microsoft-com:xml-analysis:empty" /> </return>
Siehe auch
Skriptverwaltungsaufgaben in Analysis Services
Überwachen einer Analysis Services-Instanz