Optimierung von MDX – direkte Zuweisung statt scope

Oft ist es nötig, Berechnungen für Kennzahlen bereits im Cube-Skript vorzunehmen. Insbesondere wenn die relationale Datenquelle nur eine oder wenige Kennzahlen enthält, die mit Struktur-Dimensionen geschnitten werden müssen, kommt man um die Erstellung von Kennzahlen im Cube-Skript nicht herum. Komplex wird es, wenn zusätzlich eine Bestands-Kumulation oder andere Berechnungen hinzukommen. Bei der Erstellung von Scope-Definitionen muss man auf physisch gelieferte Kennzahlen zurückgreifen können, um im Scope eine Menge von Kennzahlen bereits in einer Definition zu manipulieren. Für Kennzahlen, die im Cube-Skript definiert werden, muss man diese Definitionen einzeln wiederholen, da eine Zusammenfassung nicht möglich ist. Hierfür gibt es aber eine alternative Möglichkeit, die in diesem Beitrag genauer erläutert wird. weiterlesen…

Performanceanalyse – Arbeitsweise wichtiger Operatoren in Ausführungsplänen

Das Verständnis von Ausführungsplänen ist eine der Grundvoraussetzungen, um ein effizientes Performancetuning von SQL-Code durchführen zu können. Eine der aussichtsreichsten Optimierungsmaßnahmen ist bspw. die Indexoptimierung, für die Ausführungspläne zahlreiche wichtige Hinweise liefern. Dieser Beitrag beschäftigt sich mit der Funktionsweise der wichtigsten in den Ausführungsplänen von SQL Server auftretenden Operatoren, die für Tuningmaßnahmen genauer betrachtet werden sollten. Es werden Hinweise gegeben, warum welcher Operator von SQL Server gewählt wird und welche Probleme sich dahinter verbergen können. weiterlesen…

Alles unique oder was?

Manche Projekte bringen Besonderheiten mit sich, für die es zunächst keine offensichtliche Lösung gibt. Im vorliegenden Projekt waren die IDs der Elemente unabhängig von ihrer Bezeichnung. Das heißt konkret, dass bei jeder Neuaufbereitung der OLAP-Datenbank die ID des Elements wechseln kann. Eine eindeutige Adressierung ist dann nur noch über den Elementnamen möglich. In der Konsequenz heißt dies folgendes: bei einer Elementauswahl in DeltaMaster kann man nicht sicher sein, dass nach der nächsten Aktualisierung des Würfels die Auswahl noch denselben Inhalt darstellt. In Modeler-basierten Modellen ist dies ausgeschlossen. Im vorliegenden Beispiel wurde die OLAP-Datenbank aber ohne Zuhilfenahme von DeltaMaster Modeler erstellt. Hierfür gibt es eine Abhilfe, die in diesem Beitrag vorgestellt wird. weiterlesen…

Optimierung von T-SQL Code

Dieser Beitrag beschäftigt sich mit der Optimierung von T-SQL Code des SQL Servers. Es geht hierbei also um Möglichkeiten, Abfragen beispielsweise effizienter zu formulieren und dabei unter anderem den SQL Server Optimierer zu unterstützen. Der Beitrag stellt hierbei eine Sammlung typischer Fälle vor, die beim Schreiben von SQL Code auftreten, ohne Anspruch auf Vollständigkeit zu erheben. weiterlesen…

Berichtsserver für Experten Teil 1: zweite Instanz für den ReportService

Die deltas! 5.4.2 beschreiben die Einrichtung des ReportService. Dieser wird verwendet, um die Backend-Power eines Servers für die Erstellung von Ad-hoc-Reports zu nutzen. So kann beispielsweise ein 32-Bit-Client den ReportService eines 64-Bit-Servers verwenden.
In der Berichtsserver-Datenbank befinden sich die Jobdefinitionen. In manchen Projekten möchte man verschiedenen Abteilungen die Möglichkeit geben, unabhängig voneinander Jobs im Berichtsserver zu verwalten und auszuführen. Dazu benötigt jede Abteilung eine eigene Berichtsserver-Datenbank. Für die Verwendung des ReportService in beiden Abteilungen ist dann auch eine zusätzliche Instanz des ReportService nötig. Sofern dieser zweite ReportService auf demselben Backend-Server ausgeführt werden soll, sind – zusätzlich zu den in den deltas! 5.4.2 beschriebenen Installationshinweisen – weitere Aktionen nötig. Diese beschreibt der vorliegende Beitrag. weiterlesen…

SQL-Server Tuning

Dieser Beitrag beschäftigt sich mit dem Tuning des SQL-Servers. Das Tuning umfasst die Einstellungen der SQL-Server Instanz selbst, Einstellungen der darin betriebenen Datenbanken als auch die Hard-wareumgebung, auf der der SQL-Server ausgeführt wird. Betrachtet werden die beiden Komponenten SQL-Server relational sowie SQL-Server Analysis Services. Dabei ist jedoch nicht das Tuning von Datenbankobjekten gemeint, d. h. es geht nicht um die Themen Indizierung, Materialisierung, Ausführungsplanoptimierung usw. Ziel des SQL-Server Tunings ist es, die optimale Verarbeitungsgeschwindigkeit für vom SQL-Server ausgeführte Prozesse zu ermöglichen und die dabei zur Verfügung stehenden Ressourcen optimal zu nutzen. weiterlesen…

Fiscal Year im Table Wizard

Bei der Gestaltung der Zeit-Dimension in einem relationalen Modell hilft der DeltaMaster im TableWizard durch die Erstellung einer virtuellen Zeitdimension. Möchte man abweichend vom Kalenderjahr ein Fiskaljahr im Modell abbilden, kommt man an der manuellen Erstellung einer Zeit-Dimension nicht vorbei. Mit der diesem Beitrag angefügten Excel-Tabelle lässt sich ein abweichendes Fiskaljahr vorbereiten und als virtuelle Hierarchie zu einer selbst erstellten Zeit-Dimension anfügen. Im Modell kann dann zwischen dem Kalenderjahr und dem Fiskaljahr hin und her geschaltet werden.
Ein entsprechend aufgebautes Modell lässt sich auch über den CubeWizard in eine multidimensionale Datenbank überführen. weiterlesen…

Hardwareempfehlungen für BI-Anwendungen – auf was man bei Serverhardware achten sollte

Sie tauchen immer wieder auf – pauschale Hardwareempfehlungen, meist für kleine, mittlere, große Systeme und gar sehr große Systeme. Sie sind als Anhaltspunkt gedacht. Was aber wenn wir konkret gefragt werden, was denn nun für Kunde X in Situation Y genau das Richtige ist?
Auch wir bei Bissantz verfügen über ein Dokument, das Hardwareempfehlungen auflistet. Dabei fällt auf, dass ein großes System einen Server beinhaltet, der beispielsweise 4-8 Prozessorkerne haben soll, ein sehr großes System sollte mittels SAN angebunden sein. Warum? Ist ein SAN automatisch schneller als ein RAID? Warum nur ein Server?
Microsoft beispielsweise spricht für den SQL Server 2008 von 4GB Arbeitsspeicher pro Kern, d.h. bei 12 Prozessorkernen benötigen wir 48GB Arbeitsspeicher – eine heutzutage durchaus machbare Konfiguration, aber auch sinnvoll und richtig?
In diesem Beitrag geht es mir darum aufzuzeigen, wie schwierig die Frage nach der richtigen Hardware zu beantworten ist, was man dabei beachten sollte und wie man dennoch zu Aussagen kommen kann.
Die Frage nach der „richtigen“ Hardware ist oft zu Beginn eines Projekts ein Thema oder stellt sich allgemein in folgenden Situationen. weiterlesen…

OLAP-Datenexport im ETL-Prozess mit SSIS und Berichtsserver

Im Beitrag „Export von OLAP-Daten in eine SQL-Tabelle“ ist beschrieben, wie mittels Linked-Server und T-SQL Befehlen (OpenQuery) die Abfrage von OLAP-Daten und Übernahme in eine SQL-Tabelle des Microsoft SQL-Servers aussehen kann.
Nachfolgend wird betrachtet, wie ein solcher Datenabzug alternativ direkt mittels Microsoft SSIS erstellt wird. Einen Blick wert sind auch die Exportmöglichkeiten des DeltaMaster Berichtsserver mit der interessanten Möglichkeit, diesen in einen SSIS basierenden ETL-Prozess einzubinden, um Würfeldaten zu exportieren. Das ist beispielsweise dann eine Alternative, wenn das manuelle Erstellen ausgefeilter MDX-Abfragen Schwierigkeiten bereitet und durch das einfache Erstellen von geeigneten DeltaMaster Berichten ersetzt werden kann. Zusammen mit den Iterations- und Voreinstellungsmöglichkeiten des Berichtsservers ergibt sich für den Datenexport eine hohe Flexibilität. weiterlesen…