Schneller sortieren

ssisiconEinige Komponenten in den SSIS erwarten einen sortierten Eingang. Zugegeben, der Standard Microsoft Tasks "Sortieren" liefert nicht die beste Performance, aber bisher bin ich bei der Verarbeitung noch nicht an seine Grenzen gestoßen. Wem das schon einmal passiert ist, sollte sich die Komponente NSort der Firma Ordinal Technology Corp ansehen.

Die Ordinal Technology Corp kann mit ihren Sortierungs-Algorithmen nach eigenen Angaben 1 Terrabyte an Daten in ca. 33 Minuten sortieren. Die entwickelte SSIS Komponente ist mit 50 GB in 56 Minuten zwar nicht annähernd so schnell, ist aber immerhin in der Lage diese Datenmenge zu verarbeiten. Der Microsoft Task soll bei einer Datenmenge von 3 GB nach über 71 Minuten die Verarbeitung abbrechen.

nsort_strings

NSort bietet verschiedene Möglichkeiten für die Sortierung von Strings (DT_STR und DT_WSTR) und Einstellungsmöglichkeiten für den zu verwendeten Arbeitsspeicher und die Anzahl an Threads. Reicht der zugewiesene Hauptspeicher für Sortierung nicht aus, so verwendet NSort einen definierbaren temporären Ordner um die Daten zwischen zu speichern. Spalten mit doppelte Sortierwerten lassen sich ebenso aus dem Datenfluss entfernen wie bei dem "Sortieren"-Task.

Zusätzliche Features von NSort sind die Verwendung mehrerer Eingaben (sofern diese die selben Spalten beinhalten) und die Erstellung mehrerer Ausgaben. Bei der Verwendung mehrerer Ausgaben werden die Sortierungsschlüssel verwendet um Daten in die entsprechenden Ausgaben zu leiten.

Obwohl der NSort Transformation Editor mehr Einstellungsmöglichkeiten als die Standardkomponente bietet, kann die Komponente sehr einfach in bestehenden Paketen den "Sortieren"-Task ablösen.

Wer weitere Informationen wünscht, dem empfehle ich das Handbuch von NSort oder sich direkt die Trial Version herunter zu laden.