English Deutsch

 

Analysis Services Block Calculation in meinem SQL 2008 Launch-Vortrag

Im Anschluss an den Microsoft Launch Event vom 19.-21. Februar in Frankfurt, auf dem ich ja über die Neuerungen von Analysis Services 2008 referieren durfte, hat es einige Fragen zu den ominösen “Blockberechnungen” gegeben, die ich ja beim Vortrag in einem kurzen Beispiel vorgestellt hatte. Bevor die DVD mit den Folien der Vorträge verschickt wird, werde ich daher hier mal das mühevoll gefundene Statement veröffentlichen, mit dem man den Effekt von Block Calculation auf der AdventureWorks-Datenbank demonstrieren kann:

WITH
MEMBER Measures.Umsatzanteil AS

[Measures].[Reseller Sales Amount]/

([Measures].[Reseller Sales Amount], [Geography].[Country].CurrentMember.Parent)

, FORMAT_STRING =
“Percent”

SELECT {

[Geography].[Country].[France]

, [Geography].[Country].[Germany]

, [Geography].[Country].[United Kingdom]

} ON
COLUMNS,

{[Date].[Calendar].&[2001]:[Date].[Calendar].&[2003]} ON
ROWS

FROM [Adventure Works]

WHERE [Measures].[Umsatzanteil]

Der Trick dabei ist, dass es für alle drei Länder im Jahr 2001 keine Umsätze gibt, in Deutschland sogar auch nicht in 2002. Analysis Services 2008 erkennt dies, berechnet nur die gefüllten 5 Zellen (von insgesamt 9) und gibt die verbleibenden Zellen als leer aus.

Im Vortrag habe ich dieses mit Hilfe des Performance Monitor Counters MSAS 2005:MDX:Cells calculated demonstriert, der auf jedem Rechner zur Verfügung steht (in Deutsch heißt er “Berechnete Zellen gesamt“). Diesen zu überwachen ist etwas mühsam, denn er wird nur beim Neustart von SSAS auf null gesetzt und zählt ansonsten bei jeder MDX-Berechnung, die der Server ausführt, mit. Man sollte sich also eine eigene Testmaschine suchen! Auf dieser sieht man dann, dass der Zähler nach Beendigung der Abfrage um 9 Zellen erhöht ist; denkbar wäre ja auch 5 (denn so viele Zellen sind gefüllt), aber Cells calculated enthält immer mindestens so viele Zellen, wie ausgegeben werden.

Wer diese Abfrage auf Analysis Services 2005 ausführt und ebenfalls Cells calculated beobachtet, der sieht am Ende eine Erhöhung des Counters um 27! Warum er nun diese neun Zellen dreimal evaluiert, kann ich nur raten: Weil es drei Jahre sind? Weil drei Länder angezeigt werden? Egal: man sieht deutlich, welche Ersparnis schon bei diesem reichlich konstruierten Beispiel erzielt wird. In der wirklichen Welt sind Cubes oftmals viel weniger gefüllt als AdventureWorks; viel mehr sparse, wie der Engländer sagt. Die Performance-Beschleunigung, die man ja teilweise und mit viel Mühe auch schon mit Analysis Services 2005 Service Pack 2 erreichen kann, ist also gewaltig.

SQL Server 2008 CTP: Los geht’s!

Nach dem großen Rummel des Launch Events in Frankfurt ist es mal wieder Zeit sich um die Bytes zu kümmern.

Seit Dienstag (19.02.) gibt es die sechste Community Technology Preview (CTP6 – landläufig auch “February CTP” genannt) im öffentlichen Microsoft Download-Bereich. Und die “rockt”! Die wesentlichen neuen Funktionen von SQL Server 2008 sind implementiert (und funktionieren), eine Side by Side Installation mit SQL Server 2005 läuft problemlos ab, mit dem Visual Studio 2008 klappt’s auch – es gibt keinen Grund mehr für eine Katmai-Verweigerung. Dieses Teil-Chart aus den Hinweisen zur CTP zeigt, wo wir stehen:

In CTP6 hat sich also noch mal einiges getan. Nicht zuletzt sind (teilweise) lokalisierte Versionen verfügbar und das Setup ist noch einmal verbessert worden.

Für den Entwickler dazu gekommen sind:

Integration der Volltextsuche in die Datenbankmaschine

Die Volltextsuche ist kein getrennter Dienst mehr und einfacher in der Handhabung.

Gefilterte Indizes

Ein Möglichkeit für sehr große Tabellen. Nur Teile einer Tabelle werden indiziert.

Sparse Columns

Spart Speicherplatz, wenn in sehr breiten Tabellen (viele Spalten) viele werte NULL sind.

Sync Support

Bildet die Basis für das neue Synchronisationsframework in ADO.NET auf der SQL Server Seite.

Yummy! Das ist eine Menge neuer Stoff…

Bevor es in den nächsten Tagen darum gehen wird, die neuen Funktionen unter die Lupe zu nehmen, soll es in den nächsten Beiträgen um die überarbeitete Installationsroutine des SQL Server gehen. Natürlich sind Setups nicht wirklich spektakulär – ich habe als Trainer und Berater aber eine lange “Leidensgeschichte” hinter mir, was suboptimale SQL Server-Installationen angeht. Und ich finde, das SQL Server-Entwicklerteam hat bei der Installation einige richtig gute Verbesserungen eingebaut.

Bleiben Sie dran!