Optimizing DAX
Free

-
1. Presentation of Optimizing DAX
-
2. Exercises, slides, and demos
-
3. VertiPaq storage engine
- 3.1 VertiPaq storage engine
- 3.2 VertiPaq in-memory columnar database
- 3.3 What is VertiPaq?
- 3.4 Run Length Encoding (RLE)
- 3.5 VertiPaq compression
- 3.6 Segmentation
- 3.7 Data memory usage
- 3.8 Materialization in DAX
- 3.9 Storage internals
- 3.10 Relationships
- 3.11 Reduce dictionary size
- 3.12 Hands-on labs
- 3.13 Lab 1 – Exercise 1 – Understanding information about a model
- 3.14 Lab 1 – Exercise 1 – Solution
- 3.15 Discussion
-
4. Measuring performance
- 4.1 Measuring performance
- 4.2 Tabular query architecture
- 4.3 Two engines
- 4.4 SQL Server Profiler
- 4.5 DAX Studio
- 4.6 Gathering counters
- 4.7 Understanding data caches
- 4.8 xmSQL syntax
- 4.9 Filter
- 4.10 Lab 2 – Exercise 1 – Simple grouping
- 4.11 Lab 2 – Exercise 1 – Solution
- 4.12 Lab 2 – Exercise 2 – Simple filters
- 4.13 Lab 2 – Exercise 2 – Solution
- 4.14 Lab 2 – Exercise 3 – Basic time intelligence
- 4.15 Lab 2 – Exercise 3 – Solution
- 4.16 Discussion
-
5. Analyzing query plans
- 5.1 Analyzing query plans
- 5.2 SUMMARIZE
- 5.3 ADDCOLUMNS
- 5.4 Multiple measures
- 5.5 Cache
- 5.6 Storage engine features
- 5.7 CallbackDataID
- 5.8 Measuring MDX
- 5.9 Lab 3 – Exercise 1 – High value countries
- 5.10 Lab 3 – Exercise 1 – Solution
- 5.11 Lab 3 – Exercise 2 – Sum of similar measures
- 5.12 Lab 3 – Exercise 2 – Solution
- 5.13 Lab 3 – Exercise 3 – Context transition
- 5.14 Lab 3 – Exercise 3 – Solution
- 5.15 Lab 3 – Exercise 4 – Counting invoices
- 5.16 Lab 3 – Exercise 4 – Solution
- 5.17 Discussion
-
6. Optimizing large models
-
7. Measuring performance
- 7.1 Measuring performance
- 7.2 Tabular query architecture
- 7.3 Two engines
- 7.4 SQL Server Profiler
- 7.5 DAX Studio
- 7.6 Gathering counters
- 7.7 Understanding data caches
- 7.8 xmSQL syntax
- 7.9 Filter
- 7.10 Lab 2 – Exercise 1 – Simple grouping
- 7.11 Lab 2 – Exercise 1 – Solution
- 7.12 Lab 2 – Exercise 2 – Simple filters
- 7.13 Lab 2 – Exercise 2 – Solution
- 7.14 Lab 2 – Exercise 3 – Basic time intelligence
- 7.15 Lab 2 – Exercise 3 – Solution
- 7.16 Discussion
-
8. Analyzing query plans
- 8.1 Analyzing query plans
- 8.2 SUMMARIZE
- 8.3 ADDCOLUMNS
- 8.4 Multiple measures
- 8.5 Cache
- 8.6 Storage engine features
- 8.7 CallbackDataID
- 8.8 Measuring MDX
- 8.9 Lab 3 – Exercise 1 – High value countries
- 8.10 Lab 3 – Exercise 1 – Solution
- 8.11 Lab 3 – Exercise 2 – Sum of similar measures
- 8.12 Lab 3 – Exercise 2 – Solution
- 8.13 Lab 3 – Exercise 3 – Context transition
- 8.14 Lab 3 – Exercise 3 – Solution
- 8.15 Lab 3 – Exercise 4 – Counting invoices
- 8.16 Lab 3 – Exercise 4 – Solution
- 8.17 Discussion
-
9. Optimizing large models
-
10. Analyzing query plans'
- 10.1 Analyzing query plans
- 10.2 SUMMARIZE
- 10.3 ADDCOLUMNS
- 10.4 Multiple measures
- 10.5 Cache
- 10.6 Storage engine features
- 10.7 CallbackDataID
- 10.8 Measuring MDX
- 10.9 Lab 3 – Exercise 1 – High value countries
- 10.10 Lab 3 – Exercise 1 – Solution
- 10.11 Lab 3 – Exercise 2 – Sum of similar measures
- 10.12 Lab 3 – Exercise 2 – Solution
- 10.13 Lab 3 – Exercise 3 – Context transition
- 10.14 Lab 3 – Exercise 3 – Solution
- 10.15 Lab 3 – Exercise 4 – Counting invoices
- 10.16 Lab 3 – Exercise 4 – Solution
- 10.17 Discussion
-
11. Optimizing large models
-
12. Advanced optimizations
- 12.1 Advanced optimizations
- 12.2 Introduction
- 12.3 Division by zero
- 12.4 Filter materialization
- 12.5 Optimizing IF statements
- 12.6 Column filters vs table filters
- 12.7 Currency conversion
- 12.8 Lab 4 – Exercise 1 – Open orders
- 12.9 Lab 4 – Exercise 1 – Solution
- 12.10 Lab 4 – Exercise 2 – Optimizing if-then-else
- 12.11 Lab 4 – Exercise 2 – Solution
- 12.12 Lab 4 – Exercise 3 – Currency conversion
- 12.13 Lab 4 – Exercise 3 – Solution
- 12.14 Lab 4 – Exercise 4 – New customers
- 12.15 Lab 4 – Exercise 4 – Solution
- 12.16 Discussion
-
13. Optimization examples
-
14. Conclusion
