Unter Windows Vista, Windows 7 und im Windows Server 2008 sieht ja die Leistungsüberwachung oder ”perfmon.exe” etwas anders aus als in den vorigen Versionen. Das Tool ist aber quasi das ”Schweizer Messer des Performance Tuning”, so dass man sich eigentlich nicht genug damit beschäftigen kann. Im diesem Text wollte ich nur einfach mal einige schöne Tricks für den einfachen Umgang mit diesem Werkzeug loswerden!

Vorsicht vor BIDS2008-R2 (Textqualifier _x0222_ )
Ich dachte bisher, SSIS-Projekte, die mit BIDS-2008-Nicht-R2 erstellt wurden, lassen sich problemlos im R2-BIDS öffnen, weiterbearbeiten und dann auch unter beiden SSIS-Runtimes problemlos ausführen. Zumindest würde man (wie bei SSRS-Projekten) einen Hinweis erwarten, falls dem nicht so sein sollte. Antwort ist leider:
Es gibt Probleme, wenn man die Projekte zwischen beiden Versionen hin- und herschiebt…und die sind leider sehr versteckt!
Jahreswerte auf Monate verlustfrei verteilen – Teil 1
Ich habe wieder ein schönes Beispiel gefunden an der man die Flexibilität der Integration Services demonstrieren kann. Die Aufgabe ist recht einfach: es geht darum, einen Jahreswert mit Dezimalstellen (in unserem Fall ein numeric(6,2), z.B. ein Euro-Wert) gleichmäßig auf 12 Monate zu verteilen. Die Division sollte uns hoffentlich keine Kopfschmerzen bereiten, die Herausforderung liegt darin, dass unser Datentyp nur zwei Nachkommastellen erlaubt und daher viele Werte bei der Division einen Genauigkeitsverlust erleiden würden.
Weiterlesen
.NET Excel Interop als Windows Service benutzen
Microsoft stellt mit den InterOp Assemblies für Office Applikationen Klassenbibliotheken zur Automation von Excel Prozessen zur Verfügung. Diese werden in der Regel dazu benutzt Excel Dateien zu lesen oder zu erzeugen.
Da es sich bei Excel jedoch nicht um eine Server Applikation für Hintergrundanwendungen handelt sind bei dem Einsatz dort einige Fallstricke zu umschiffen.
In Folge werden wir einen kleinen Windows Service entwickeln, der in der Lage ist en Verzeichnis zu überwachen, Excel Dateien dort zu lesen, zu modifizieren und sie in ein Ausgabe Verzeichnis zu kopieren. Hierzu müssen Visual Studio, die Microsoft Interop Assemblies als auch Microsoft Excel auf dem Entwicklungssystem installiert sein.
C#-ExcelButler vs. SSIS-ExcelDestination
Oft stellt sich die Anforderung, Excel-Dateien komfortabel aus Datenbanken befüllen zu können. Als Alternative zur Excel-Destination im SSIS-Paket wurde hierfür die C#-Klasse ExcelButler.cs “entwickelt. Sie enthält Routinen zum Erstellen, Auslesen, Beschreiben und Abspeichern von Excel-Dateien. Sie kann an beliebigen Stellen im Excel-Sheet Werte einfügen, Werte auslesen, Zellen formatieren, Zellen gruppieren und so weiter und bietet damit eine Fülle von Möglichkeiten für das Handling von Excel-Dateien. Weiterlesen
Vom Bild einer Karte zur vektorisierten Shape-Datei für Reporting Services
Wer mit den Reporting Services arbeitet, hat ein gewisses Portfolio an Karten die genutzt werden können. Sei es mit den SSRS in der Version 2005 / 2008, wo zusätzlich die „Dundas Maps” installiert werden müssen, oder innerhalb der Version 2008 R2, in der die Kartenfunktionalität schon integriert ist. Da die Auswahl der Standardkarten jedoch nicht sonderlich groß ist, gibt es sicherlich recht schnell Bedarf, eigenen Karten zu erstellen.
Sicheres Deployment einer BI-Lösung mit Bordmitteln und OpenSource-Tools
Die Bereitstellung einer Business Intelligence Lösung erscheint im ersten Moment als eine triviale Angelegenheit. Wer jedoch eine mühevoll und aufwendig entwickelte BI-Lösung nach erfolgreichem Test und Abnahme auf ein Produktivsystem übertragen musste, der weiss, wie mühevoll und aufwendig dieses Unterfangen trotz aller anfänglichen Vermutung sein kann.
Weiterlesen
SSAS 2005 MDX Simple CASE WHEN – Probleme im ELSE Zweig
Manchmal, aus welch guten oder schlechten Gründen auch immer, muss man in berechneten Measures eines SSAS 2005 Cubes mehrere Zustände eines Members unterschiedlich behandeln. Dies erreicht man durch die Verwendung von IIF Statements, oder, ein wenig bequemer, durch die Verwendung von CASE WHEN Statements.
Weiterlesen
Erzeugung von Intervall-Datensätzen mithilfe von Common Table Expressions
Mit rekursiven CTEs (Common Table Expressions) lassen sich Abfragen elegant und lesbar schreiben. Ein Beispiel wird hier vorgestellt. Vorgegebene Wertebereiche sollen jeweils auf eine bestimmte Anzahl von Intervallen (Buckets) aufgeteilt werden. Es kann sich dabei z.B. um Kennzahlen wie Einkommen oder um das Alter von Kunden handeln. Der jeweilige Kunde kann dann (z.B. in einem Lookup-Task in SSIS) dem passenden Bucket zugeordnet werden um alle Kunden sinnvoll zu klassifizieren.
Weiterlesen
SSIS Error Handling Design Pattern: Transaktionen
Die Konfigurationsmöglichkeiten für das Transaktionsverhalten in SSIS Paketen reichen in bestimmten Fällen nur bedingt aus. Stellen wir uns einmal folgende Ausgangssituation am Beispiel eines betriebswirtschaftlichen Szenarios vor: Wir benötigen ein SSIS-Paket zum Import der monatlichen Verteilungsschlüssel von Hauptkostenstellen auf Nebenkostenstellen. Um die Richtigkeit der Daten zu gewährleisten, prüfen wir diese Verteilung, bevor die Daten importiert werden. Wird eine Hauptkostenstelle nicht zu 100% verteilt, müssen wir auf diesen Fall reagieren.
Weiterlesen
