ixto - business intelligenceeinfach entscheiden.
Blog
Blog

Probleme beim Multicast in SSIS-Paketen

Bei einem SSIS-Projekt mit SQL Server 2008 R2 kam es zum folgenden Problem: Nach einer Datenquelle wurde ein Multicast verwendet, nur leider kamen keine Daten aus der Quelle beim Multicast an. Bei der Fehlersuche zeigte sich, dass Daten an der Datenquelle ankommen müssten, diese allerdings aus einem unbekannten Grund nicht weitergeleitet wurden. Weiterlesen

Erweiterungen der In.Memory Technologien im SQL Server 2014

Mit dem SQL Server 2012 wurden xVelocity und Columnstore Indexes als In.Memory-Technologien eingeführt. Diese Technik ermöglichte es, häufig abgefragte Tabellen zur Beschleunigung häufiger Datawarehouse-Abfragen spaltenbasiert im Hauptspeicher zu speichern.

Im neuen SQL Server 2014 wurde diese Technologie erweitert: Columnstore Indexe werden in Zukunft nicht mehr nur lesbar sein, sondern auch Schreib-Zugriffe ermöglichen (Quelle). Außerdem werden die In.Memory-Fähigkeiten des SQL Servers um eine Engine, die unter dem Codenamen “Hekaton” entwickelt wurde, erweitert. Sie stellt eine für OLTP-Prozesse optimierte In.Memory Technologie dar, mit deren Hilfe nicht mehr nur lesende Analyse-Zugriffe aus dem Hauptspeicher erfolgen können, sondern die es ermöglicht, die schreibende transaktionale Last in den Hauptspeicher zu verlagern.

Zu diesem Zweck werden Filegroups angelegt, die als “Hauptspeicheroptimiert” gekennzeichnet werden und die die Tabellen enthalten, die bei der Erstellung ebenfalls entsprechend markiert wurden. Durch die Verlagerung bestimmter Tabellen in den Speicher kann die Performance bestimmter Prozesse um das bis zu 20-fache beschleunigt werden (Quelle).

Der Vorteil gegenüber Konkurrenzprodukten besteht dabei darin, dass gezielt einzelne Datenbankobjekte in den Speicher verlegt werden können, um so Performance-Bottlenecks gezielt anzugehen. Die Gesamt-Infrastruktur einer Datenbanklösung kann dabei in der Regel bestehen bleiben – bis hin zur Hardware. In.Memory-Lösungen werden dadurch in jeder Größenordnung bezahlbar. Die Syntax für Columnstore-Indexe ist dabei im Vergleich zum SQL Server 2012 unverändert. Neu ist die Syntax für die In.Memory OLTP-Engine. Um die In.Memory-Engine für eine Tabelle zu aktivieren, muss zunächst eine Filegroup angelegt werden, die die entsprechenden Daten enthält:

 

ALTER DATABASE [db] ADD FILEGROUP [inMemoryFg]

CONTAINS MEMORY_OPTIMIZED_DATA


Hinterher muss der Filegroup eine Datei hinzugefügt werden:

 

ALTER DATABASE [db] ADD FILE

(name=’name’, filename=’c:\data\filename’)

TO FILEGROUP [inMemoryFg] 


Um nun eine Tabelle in den Hauptspeicher zu verlegen, muss lediglich beim Anlegen ein Hash-Key angelegt werden und markiert werden, dass die Tabelle Hauptspeicher-Optimierte Daten enthält:

 

CREATE TABLE [dbo].[TableName]

([…])

WITH ( MEMORY_OPTIMIZED = ON , DURABILITY = SCHEMA_ONLY )

 

Indexe auf In.Memory-Tabellen müssen gemeinsam mit der Tabelle erzeugt werden, die vollständige Syntax sowie mehrere Beispiele zur Benutzung von In.Memory-Optimierten Tabellen finden sich im MSDN.

 

Beim Launch-Event der PASS zum SQL Server 2014 wird die ixto GmbH als eines der ersten Unternehmen überhaupt ein Projekt vorstellen, mit dem wir die Leistungsfähigkeit dieser neuen Technologie demonstrieren können.

RegEx-Performance in SSIS Datenflüssen

Im letzten Beitrag hatten wir empfohlen, reguläre Ausdrücke zu verwenden, wenn Muster in Texten gesucht werden sollen. Dabei hatten wir neben einer kleinen Syntax-Einführung auf eine MSDN-Seite mit Performance-Tipps verwiesen. In diesem zweiten Teil der RegEx-Beiträge möchten wir diese Tipps konkret in den SSIS-Kontext übertragen. Dafür wollen wir zunächst testen, wie hoch der Overhead für die Instanziierung eines RegEx-Objekts im Vergleich zum Aufruf statischer RegEx-Methoden in C# ist. Hinterher möchten wir beide Methoden in einem einfachen SSIS-Datenfluss vergleichen.

Weiterlesen

Dynamische Excel Abfragen mit wechselnden Zellbezügen

Tabellenblätter einer Excel Datei lassen sich ohne weiteres mit Hilfe des Excel Quellen-Editors in SSIS abfragen. Kürzlich stand ich jedoch vor der Herausforderung, dass sich je nach Version der zu ladenden Excel Datei die Quelldaten in anderen Zellen befinden. Ich bin zunächst davon ausgegangen, dass für diese Anforderung die Skriptkomponente verwendet werden muss. Eine Suche in den Tiefen des Internets hat mich eines Besseren belehrt. In diesem Blogbeitrag wird das Erstellen von Excel Abfragen mit verändernden Zellbezügen und das Abfragen einzelner Zellwerte erklärt.

Weiterlesen

Best practice: Parsen über RegEx

In ETL-Prozessen, die sich mit manuell eingegebenen Daten wie Kundendaten oder ähnlichem beschäftigen gibt es fast zwangsläufig irgendwann die Situation, Daten aus einem Textfeld extrahieren zu müssen. Und obwohl das eine fast alltägliche Aufgabe ist, stößt man in real existierenden Projekten immer wieder auf enorm umfangreiche Substring-Methoden zur Erkennung bestimmter Muster. Dabei hat so gut wie jede Programmiersprache dafür ein Konstrukt parat, von dem zwar schon einmal gehört haben dürfte. Leider wird es allerdings leider oft wegen seines vermeintlich komplizierten Syntax oder weil es gerne als “überdimensioniert” betrachtet wird, ignoriert wird: die regulären Ausdrücke (Regular Expressions oder auch RegEx).

Weiterlesen

Einsatz von Volltextsuche (Full-Text Search) im SQL Server beim Erstellen von Berichten in SSRS.

In diesem Blogbeitrag möchte ich über ein sehr interessantes Feature von MS SQL Server berichten: Volltextsuche (Full-Text Search) und wie man es beim Erstellen von Berichten in SSRS einsetzen kann.

 
Ein mögliches Anwendung-Szenario für den Einsatz von Volltextsuche in einem Bericht ist die Suche in der Datenbank nach einem bestimmten Attribut anhand eines anderen Attributs – Z.B. man sucht anhand eines Titels nach der ISBN-Nummer eines Buchs.
Weiterlesen

Many – to – Many Beziehung im Tabular Cube

Beim Arbeiten mit dem Tabular Cube stolpert man unweigerlich irgendwann über den Punkt, an der die “normale” 1:n Beziehung nicht mehr ausreichend ist.

 

Für viele Anwendungen sehnt man sich die klassische Many-to-Many – Beziehung des OLAP Cubes herbei. Die gute Nachricht ist, sie lässt sich mittels DAX nachbauen.

Es gibt dafür auch bereits ein wirklich gutes WhitePaper von sqlbi, welches von Marco Russo und Alberto Ferrari verfasst wurde ( link ).

  Weiterlesen

Die fünf besten Tipps für einfache BI-Lösungen

In der klassischen Literatur wird Business Intelligence (BI) als eine „entscheidungsorientierte Sammlung, Aufbereitung und Darstellung geschäftsrelevanter Informationen“ beschrieben (Vgl. Holger Schrödl: Business Intelligence mit MS SQL Server 2008 – BI-Projekte erfolgreich umsetzen). Am Beispiel der Auswertung der Mitgliedsdaten der Kolpingjugend Berlin – einem katholischen Jugendverband in Deutschland – wird in diesem Blog-Beitrag die Erstellung einer möglichst einfachen BI-Lösung beschrieben. Anonymisierte Daten von 2004 bis 2013 wurden hierfür ausgewertet.

 
Weiterlesen

Vorsicht vor dem Cumulative update package 4 for SQL Server 2012 SP1

In einem unserer Projekte hat uns ein Fehler viel Zeit und Nerven gekostet. Mittlerweile scheinen auch andere auf das Problem gestoßen zu sein. Wenn Sie das Update CU4 für den SQL Server 2012 installieren, bekommen Sie Probleme in Reporting Services, falls sie Multivalue-Parameter (mehrwertige Parameter) ohne Default-Werte verwenden.

Sobald Sie das Update deinstallieren, sollten die Multivalue-Parameter wieder funktionieren.

 

Falls Sie Fragen haben, schreiben Sie uns einen Kommentar. Wir helfen ihnen gerne weiter.

 

Quelle:

https://connect.microsoft.com/SQLServer/feedback/details/789435/ssrs-2012-problems-with-related-nested-multi-valued-parameters-after-applying-sp1-cu4

 

SQL Server verschluckt Minus – Besonderheit von Collations bei Sortierungen in SQL

Im Projekt bei einem Kunden wurden in der Datenbank Bestellnummern gespeichert. Damit die Bestellnummern alle eine vorgegebene Länge haben, wurden sie mit führenden Nullen aufgefüllt. Deshalb wurden die Bestellnummern in einem Varchar-Feld gespeichert. Um geplante Bestellvorgänge und tatsächlich getätigte Bestellungen in einer Datenbank pflegen zu können, wurden die noch nicht bestätigten Bestellvorgänge durch „negative“ Bestellnummern, also durch ein Minuszeichen als Präfix, gekennzeichnet. Bei der Bearbeitung der Bestellvorgänge zu einer Kundennummer war es nötig Duplikate zu entfernen, also im Falle mehrerer Bestellnummern zu einer Kundennummer immer die letzte Bestellnummer zu erhalten und die übrigen zu verwerfen.
Weiterlesen

ImpressumSitemap