Die Cube-Verarbeitung dauert entweder zu lange oder schlägt fehl


7

Ich habe einen SSAS-Würfel mit 35 Dimensionen und 10 Takten.

  • Einige der Abmessungen sind ziemlich groß.
  • In fast allen Dimensionen werden Daten entweder aktualisiert und eingefügt.
  • Maßnahmen haben ein hohes Datenvolumen.

Wenn ich von SSMS aus laufe (durch Klicken mit der rechten Maustaste auf SSAS-Datenbank), "Prozess voll" in der Datenbank, dauert es ungefähr 1 Stunde 30 Minuten.

Wenn ich einen Cube (Prozess voll) vom SQL Agent-Job über ein XMLA-Skript verarbeite, dauert es ungefähr 1 Stunde und 20 Minuten.

Wenn ich Dimensionen und Maße (Prozess voll) separat über SSMS verarbeite, dauert es 1 Stunde 50 Minuten.

Wenn ich jedoch Dimensionen und Kennzahlen aus SSIS (DML Task via XMLA) verarbeite, dauert es mehr als 5 Stunden. [Der Speicherverbrauch stieg auf fast 100%]

Meine Fragen sind also:

  1. Können Verarbeitungsdimensionen und -maße aus SSIS so viel kosten?
  2. Welche Art der Verarbeitung sollte ich für eine schnelle Würfelverarbeitung wählen? Ich mache Prozess voll.
  3. Wenn ich einen Würfel aus den ersten beiden Optionen verarbeite, schlägt der Würfel meistens fehl, wenn "Attributschlüssel nicht gefunden" angezeigt wird. Dies funktioniert jedoch gut, wenn ich Dimensionen verarbeite und separat messe. Gewährleistet die Verarbeitung des vollständigen Würfels nicht die ordnungsgemäße Verarbeitung von Dimensionen und Maßen?

Wie groß ist dein Würfel? Was ist die Leistung der Box, auf der Sie sie betreiben?
Zane

2
35 Dimensionen fühlen sich auch etwas steil an.
Zane

Ich habe 64 GB RAM und 1 TB Festplatte für Daten und 1 TB für Protokolltransaktionen.
Zerotoinfinity

Antworten:


1

Oh meine Liebe..

Als erstes. In Ihrem Fall möchte ich Ihnen vorschlagen, die Option "Prozessstandard" zu wählen. Wenn Sie Process Full verwenden, löschen Sie immer alle Daten und Objekte und erstellen alle Ihre Daten neu. Du brauchst sie nicht. Sehr oft besteht die Vorschlagsoption darin, ProcessData gefolgt von ProcessIndex zu verwenden.

Ich habe den Cube nicht aus dem SSIS heraus verarbeitet, aber wahrscheinlich überprüft SSIS etwas und sperrt etwas in der Datenbank. Die beste Option ist die Verwendung von XMLA. Wenn Sie Ihren Cube aus dem SSIS heraus verarbeiten möchten, können Sie eine Skriptaufgabe schreiben, um die Verarbeitung durchzuführen. Sie finden Skripte im Internet.

Sie müssen auch überprüfen, ob Sie saubere Daten haben. Überprüfen Sie zweimal in Ihrem Projekt und in Ihren Daten, ob Sie alle Schlüssel haben und so weiter. Wenn Sie die Dimension separat verarbeiten, werden die Daten nicht zwischen Kennzahlen und Dimensionen verglichen. Ich bin mir ziemlich sicher, dass Sie einige Schlüssel in Faktentabellen haben, die keine entsprechenden Werte in Ihrer Dimension haben. Bestellen Sie damit. Wenn Sie keine Werte in der Dimension haben und diese korrekt sind (in den Quelltabellen nicht vorhanden), können Sie jeder Dimension einen zusätzlichen Wert mit dem Schlüssel "-1" und allen Werten wie "N / A" (nicht zutreffend) und hinzufügen Zeigen Sie die nicht begründeten Werte in den Dimensionen auf diesen Datensatz.

Und am Ende. Wenn Sie eine große SSAS-Datenbank haben, denken Sie bitte an eine Partitionierung.

Es gibt viel zu erzählen. Wenn Sie spezielle Fragen haben, können Sie diese gerne stellen.


0

Ich empfehle dringend, dass Sie Ihren Würfel partitionieren. Dann kann der Server die Verarbeitung der Faktentabelle parallelisieren, wodurch Sie wahrscheinlich den größten Leistungsgewinn erzielen.


0

Wenn Sie alle Dimensionen und Fakten in SSIS separat verarbeiten, tun Sie dies in mehr als einer Transaktion. Die Verarbeitung des gesamten Cubes in einer Transaktion ist schneller, wenn der Server damit umgehen kann.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.