Scoped assignments – Fluch oder Segen?

Werbung
Scoped assignments – Fluch oder
Segen?
Beispiele aus der Praxis...
08.10.2016
SQLSaturday #555 Munich 2016
Our Sponsors
08.10.2016
SQLSaturday #555 Munich 2016
Wer bin ich?




BI Consultant bei der oh22data AG
Schwerpunkte: SSAS, MDS, SSRS
> 10 Erfahrung im Datenbank und BI Bereich
Sprecher bei Regionalgruppen und
nationalen und internationalen Konferenzen
wie SQL Saturday, SQL Bits etc.
08.10.2016
SQLSaturday #555 Munich 2016
Agenda
 Was sind Scoped Assignments?
 Welche Risiken gibt es bei Scoped
Assignments?





Abhängigkeiten vom Dimensionsdesign
Will ich die Aggregation meines Measures nutzen?
Bekannte MDX Issues (Aggregate mit Sets)
Scopes und Security
Manchmal ist es doch nicht der Scope (Scope Isolation)
 Resümee
 Q&A
08.10.2016
SQLSaturday #555 Munich 2016
Was sind Scoped Assignments? (I)
Business Logik des Cubes
Stehen im Calculations Skript des Cubes
Änderung von Werten
Änderung von Berechnungsvorschriften
(Aggregationsverhalten)
 Zentrales Business Logik Element neben
berechneten Elementen
 Berechnete Elemente erweitern den Cube,
Scopes überschreiben bestehende Zellen.




08.10.2016
SQLSaturday #555 Munich 2016
Was sind Scoped Assignments? (II)
 Zwei Elemente:
 Subcube Definition => Welcher Teil des Cubes
soll beeinflusst werden?
 Assignment => Welche Änderung soll
vorgenommen werden?
 Zwei Syntaxvarianten:
 Direct assignment => (Subcube) = Assignment;
 SCOPE(Subcube);
THIS = Assignment;
END SCOPE;
08.10.2016
SQLSaturday #555 Munich 2016
Was sind Scoped Assignments? (III)
 Subcube Definition:
 Beschreibe den Subcube so präzise wie möglich
durch die Kombination von Sets aus
verschiedenen Hierarchien.
 Set Optionen:
 einzelnes Element
 mehrere Elemente ohne das All-Element
 alle Elemente einschließlich des All-Elements
 Bekannter Fehler: ‚arbitrary shaped set‘
 Der Fehler kommt, wenn das Ergebnisset nicht
ausbalanciert ist (gleiche Leveltiefe aller Pfade)
08.10.2016
SQLSaturday #555 Munich 2016
Was sind Scoped Assignments? (IV)
 Komplexe Scopes:
 Vereinfachung durch Verschachtelung (Nested
scopes)
 If/Case Statements zur Strukturierung
 Subcube so klein wie möglich definieren, Measure
dabei nicht vergessen
 Keine Mischung von echten und berechneten
Measures (geht meistens eh nicht )
08.10.2016
SQLSaturday #555 Munich 2016
Abhängigkeiten vom Dimensionsdesign
 Komplexes Dimensionsdesign => erhöhte
Komplexität beim Scoping
 Im Fall von mehreren Hierarchien müssen die
Elemente der Subcubedefinition in der
Schnittmenge der Hierarchien liegen.
 Wenn eine oder mehrere der Hierarchien
mehrere Root-Elemente haben wird es
wirklich schwierig.
08.10.2016
SQLSaturday #555 Munich 2016
Abhängigkeiten vom
Dimensionsdesign
Demo
08.10.2016
SQLSaturday #555 Munich 2016
Will ich die Aggregation meines Measures
nutzen?
 Scoped Assignments sind sowohl für echte als
auch für berechnete Measure möglich.
 Bei echten Measures kann man das
Aggregationsverhalten zur Beschleunigung der
Scopeberechnung nutzen:
http://blog.crossjoin.co.uk/2013/05/29/aggregati
ng-the-result-of-an-mdx-calculation-usingscoped-assignments/
 Aber das Berechnungsverhalten wird schwerer
nachvollziehbar und in manchen Fällen
verursachen wir so erhebliche
Performanceeinbrüche.
08.10.2016
SQLSaturday #555 Munich 2016
Will ich die Aggregation meines
Measures nutzen?
Demo
08.10.2016
SQLSaturday #555 Munich 2016
Bekannte MDX Issues (Aggregate mit Sets)
 Es gibt zahlreiche Blog Posts und DokuEinträge über bekannte Performance Issues.
Nutzt die Erfahrungen der Anderen zu eurem
Vorteil. 
 Z.B.:
 https://msdn.microsoft.com/enus/library/dn749781.aspx
08.10.2016
SQLSaturday #555 Munich 2016
Bekannte MDX Issues (Aggregate
mit Sets)
Demo
08.10.2016
SQLSaturday #555 Munich 2016
Scopes und Security
 Security relevante Dimensionen in Scoped
Assignments können zu Fehlern führen.
 Die Verwendung von Named Sets kann das
lösen, aber zu Performanceproblemen führen.
 http://blog.crossjoin.co.uk/2011/03/16/refere
ncing-named-sets-in-calculations/
 Exists bzw. Existing können hier helfen.
08.10.2016
SQLSaturday #555 Munich 2016
Scopes und Security
Demo
08.10.2016
SQLSaturday #555 Munich 2016
Manchmal ist es doch nicht der Scope
(Scope Isolation)
 Mal nicht die Performance: Falsche Werte
sind auch ein Problem. Und Key User
schreiben manchmal interessante Queries.
 http://blog.crossjoin.co.uk/2014/10/14/mdxsolve-order-scope_isolation-and-theaggregate-function/
08.10.2016
SQLSaturday #555 Munich 2016
Manchmal ist es doch nicht der Scope
(Scope Isolation)
 Zellen werden durch natürliche
Aggregationen und Scopes beeinflusst.
 Jeder Änderung wird „Pass“ genannt
 Wie findet man den „Winning Pass“?
 Cell Properties können helfen:
 Ändere z.B. die „Back_Color“ eines Subcubes für
jedes Assignment und schau dir farbenfroh an,
wer gewinnt. 
08.10.2016
SQLSaturday #555 Munich 2016
Manchmal ist es doch nicht der Scope
(Scope Isolation)
 Demo
08.10.2016
SQLSaturday #555 Munich 2016
Resümee
 Keine Überraschung: Scoped Assignments sind
sowohl Fluch als auch Segen 
 Große Chancen, noch größere Risiken
 Nutzt die Erfahrungen anderer. Es gibt genug in
der Community darüber.
 Testen, Testen, Testen…
 SQL Server Profiler zum Messen der Performance
 Cell Properties zum Visualisieren der
Berechnungsreihenfolge
 Monitoring der User Queries (soweit erlaubt ;-))
08.10.2016
SQLSaturday #555 Munich 2016
Q&A
???
08.10.2016
SQLSaturday #555 Munich 2016
Thank you…
 For attending this session.
 And thanks to all those amazing guys, that
share their knowledge with the community
and helped me solve my issues, so thanks to
Chris, Marco, Alberto and all the others… 
08.10.2016
SQLSaturday #555 Munich 2016
Save the Dates!
PASS Camp 2016 - 06. to 09. December 2016
SQL Konferenz 2017 - 14. to 16. February 2017
08.10.2016
SQLSaturday #555 Munich 2016
How did you like it?
Please give feedback
 to the event:
 http://goo.gl/5tStsd
08.10.2016
SQLSaturday #555 Munich 2016
 to me as a speaker:
 http://goo.gl/TgViTX
Herunterladen