Wie kann ich feststellen, welcher SSAS-Cube gerade verarbeitet wird?

8

Es gibt ein Problem, wenn mehrere Benutzer denselben Würfel simultan verarbeiten können und die Verarbeitung des Würfels daher fehlschlägt. Also muss ich prüfen, ob ein bestimmter Würfel gerade bearbeitet wird.

    
Alekzander 10.08.2012, 09:53
quelle

5 Antworten

7

Ich glaube nicht, dass Sie verhindern können, dass ein Cube verarbeitet wird, wenn ihn bereits jemand bearbeitet. Was Sie tun können, um "Hilfe" zu erhalten, ist eine MDX-Abfrage auszuführen, um zu überprüfen, wann der Cube zuletzt bearbeitet wurde:

%Vor%

oder überprüfen Sie die Tabelle sys.process auf der realted sql Server-Instanz, um zu sehen, ob sie ausgeführt wird:

%Vor%     
Diego 10.08.2012 10:40
quelle
2

Verwenden Sie diesen Code, um laufende Prozesse auszuwählen: (Führen Sie dies in OLAP aus)

%Vor%

Und dieser Code, um laufende Prosessess abzubrechen! Bitte ändern Sie die PID zum Ausführen von SESSISONS_SPID wie im Beispiel:

%Vor%     
Evgeny Budnik 05.10.2014 07:25
quelle
1

Ich hatte ein ähnliches Problem und löste es mithilfe des auf dem SSAS-Server bereitgestellten DISCOVER_LOCKS -Zeilensatzes. Führen Sie zu dem Zweck zuerst die folgende XMLA-Abfrage zu dem Server aus:

%Vor%

In der XML, die der Server zurückgibt, sollte es eine Menge row -Elemente geben, die ungefähr so ​​aussehen:

%Vor%

Beachten Sie in diesem Beispiel das Element Object unter LOCK_OBJECT_ID und das Element LOCK_TYPE . Laut der Microsoft Dokumentation bedeutet LOCK_TYPE von 4 eine Schreibsperre aufgrund einer Verarbeitungsaufgabe . Sie sollten also herausfinden können, ob ein Cube verarbeitet wird, wenn LOCK_TYPE 4 ist und LOCK_OBJECT_ID/Object/CubeID mit der ID des Cubes übereinstimmt, an dem Sie interessiert sind, für ein gegebenes row -Element in den Abfrageergebnissen.

    
Bender Rodriguez 04.02.2014 22:44
quelle
0

Wahrscheinlich wäre ein besserer Ansatz für die bereits aufgeführten Methoden die Verwendung von SQL Server Profiler , um Aktivitäten auf dem Analysis Server zu überwachen. Wie bereits erwähnt, hat die aktuelle populäre Antwort zwei Fehler, die erste Option zeigt nur die LETZTE Zeit an, in der der Würfel bearbeitet wurde. Und die zweite Option zeigt nur, wenn etwas läuft. Aber es sagt Ihnen nicht, was läuft und was ist, wenn Ihr Cube nicht von einem SQL-Server, sondern von einer anderen Datenquelle verarbeitet wurde?

Wenn Sie SQL Server Profiler verwenden, erfahren Sie nicht nur, ob etwas verarbeitet wird, sondern auch, was gerade verarbeitet wird. Die meisten Ereignisse können Sie ausfiltern. Sehen Sie sich die Fortschrittsberichte der aktuellen Ereignisse an, wenn Sie Echtzeitinformationen benötigen ... Normalerweise ist es zu viel Datenspeicher, um echte Informationen daraus zu erhalten, aber Sie werden sicher wissen, dass mindestens ein Prozess läuft weiter. Sehen Sie sich nur die Fortschrittsbericht-Anfangs- und -Ende -Ereignisse an, um bessere Informationen zu erhalten, z. B. was gerade verarbeitet wird, sogar bis zu den Partitionsebenen. Andere Ereignisse mit guten Informationen sind Befehl Anfang / Ende und Abfrage Anfang / Ende .

    
Mark Spiezio 02.09.2014 23:08
quelle
-1

Wenn ein Cube verarbeitet wird, wird im Task-Manager ein Job namens "MSDARCH" angezeigt. Ich bin mir nicht sicher, wie Sie das herausfinden können.

    
Magnus Smith 17.08.2012 10:41
quelle

Tags und Links