Mark Aslan Kuschels Blog

SQL Server, Azure, Business Intelligence, Smart Home

Folien zum PASS Vortrag über Extended Events in Analysis Services

Vergangene Woche habe ich am Dienstag bei der Regionalgruppe der PASS in Hamburg sowie am Freitag bei der Regionalgruppe der PASS Hannover/Göttingen einen Vortrag zu meinem letzten Artikel Ermitteln der Measurenutzung in SQL Server Analysis Services gehalten.

Angehängt an diesen Post findet ihr die Folien zum Download ebenso wie die Code-Beispiele. Das SSIS Paket ist nun auch verbessert, sodass es für jede Abfrage nun mehrere Zeilen mit allen Measures ausgibt (Danke an Sascha für den Hinweis).

Ebenso möchte ich mich noch für den Tipp bedanken, dass nun die neuen SQL Server Data Tools Business Intelligence für Visual Studio 2012 verfügbar sind, denn der Fly-To-The-Moon-Bug ist tatsächlich behoben worden.

Zum Schluss noch der Link zum Buch SQL Server Internals von Kalen Delaney, das mir als Wertvolle Quelle für die Abläufe im SQL Server dient: http://www.amazon.de/gp/product/0735658560/ref=as_li_ss_tl?ie=UTF8&camp=1638&creative=19454&creativeASIN=0735658560&linkCode=as2&tag=irgenddasvisu-21 

Download Folien & Code: PASS_XE_SSAS.zip (1,3MB)

Integration Services Fehler -1073741819

Neulich bin ich bei einem Kunden (SQL Server 2008 SP2) auf einen scheinbar nicht erklärbaren Fehler gestoßen.
Im Log des SQL Server Agents fand sich beim Versuch ein ETL-Paket auszuführen folgende Fehlermeldung:

Executed as user: DOMAIN\sqluser. The step did not generate any output.
The return value was unknown. The process exit code was -1073741819. The step failed.

Die SSIS Logs zeigen gar keine Einträge, sodass nicht mal ein Versuch gestartet worden ist, das Paket auszuführen. Allerdings funktionierte lokal im Visual Studio alles einwandfrei.
Einer Recherche nach steht der Fehlercode -1073741819 im Windows Betriebssystem für den ungültigen Zugriff eines Prozesses auf einen Bereich außerhalb des ihm zugeordneten Speicherbereiches.

Die Lösung war eine durchgeführte Änderung an der SSIS Konfigurationstabelle. Ein Entwickler hatte eines der Felder, in denen die Paketkonfiguration gespeichert wird, auf nvarchar(MAX) gesetzt. Ich nehme daher an, dass die Ausführung des ETL-Paketes auf dem Server den Speicher anders allokiert, als es bei der Ausführung lokal im Visual Studio der Fall ist.
Der dtutil-Prozess hat somit versucht Daten in die zu klein definierte Variable zu speichern und wurde daran gehindert. Anders als bei Datenquellen unterliegt die Konfigurationstabelle auch keiner Validierung vor dem eigentlichen Start des ETL-Paketes, sodass der Fehler dem Administrator nicht transparent gemacht.

Wem über diesen Fehlercode stolpern sollte empfehle ich daher eine genaue Prüfung der Metadaten aller im Paket verwendeten Tabellen, insbesondere der Paketkonfiguration und des Loggings.

Eine weitere mögliche Ursache kann das verwenden derselben Query in mehreren Lookups sein, sodass der Prozess (scheinbar anhand eines Hashes) nicht in der Lage ist die Speicherbereiche zu trennen. Hier ist die Lösung das Einfügen von Kommentaren in den Code, um eine Unterscheidung herzustellen.

Dieser Beitrag ist auch im PTSGroup BI Blog unter http://biblog.ptsgroup.de/allgemein/integration-services-fehler-1073741819/ abrufbar