Optimizing DAX Video Course

This is the video course version of the Optimizing DAX workshop. It teaches you how to optimize queries and measures in DAX.

DAX is the native language of Power Pivot for Excel, Power BI Desktop and SSAS Tabular models in Microsoft SQL Server Analysis Services. This video course is aimed at users of Power BI, Power Pivot, and at Analysis Services developers who already know the DAX language and want to learn how to optimize DAX formulas and models for improving performance.

The goal of the video course is to enable you to find bottlenecks in DAX calculations using tools such as Profiler and DAX Studio, providing the knowledge to improve the performance by using different DAX formulas or by changing the data model, when required. The video course is made up of over 10 hours of lectures, plus another estimated 8 hours of individual exercises. You can watch the videos at anytime and the system will keep track of your progress. Within the video course you can download the material for all the exercises.

Students have access to a private discussion area where they can interact with the instructors asking questions related to the lectures and the exercises.

Prerequisite: Attendees need a good knowledge of the DAX Language, and a previous experience using either Power Pivot for Excel, or Power BI Desktop, or Analysis Services Tabular. You may acquire this knowledge by following the Mastering DAX Workshop, or by having equivalent real-world experience.

Collapse allCurriculum

  • Presentation of Optimizing DAX

    • Presentation of Optimizing DAX
  • Exercises, slides, and demos

    • How to download and complete exercises
    • Exercises download
    • Demos download
    • Slides of the video course
  • VertiPaq storage engine

    • VertiPaq storage engine
    • VertiPaq in-memory columnar database
    • What is VertiPaq?
    • Run Length Encoding (RLE)
    • VertiPaq compression
    • Segmentation
    • Data memory usage
    • Materialization in DAX
    • Storage internals
    • Relationships
    • Reduce dictionary size
    • Hands-on labs
    • Lab 1 - Exercise 1 - Understanding information about a model
    • Lab 1 - Exercise 1 - Solution
  • Measuring performance

    • Measuring performance
    • Tabular query architecture
    • Two engines
    • SQL Server Profiler
    • DAX Studio
    • Gathering counters
    • Understanding data caches
    • xmSQL syntax
    • Filter
    • Lab 2 - Exercise 1 - Simple grouping
    • Lab 2 - Exercise 1 - Solution
    • Lab 2 - Exercise 2 - Simple filters
    • Lab 2 - Exercise 2 - Solution
    • Lab 2 - Exercise 3 - Basic time intelligence
    • Lab 2 - Exercise 3 - Solution
  • Analyzing query plans

    • Analyzing query plans
    • Multiple measures
    • Cache
    • Storage engine features
    • CallbackDataID
    • Measuring MDX
    • Lab 3 - Exercise 1 - High value countries
    • Lab 3 - Exercise 1 - Solution
    • Lab 3 - Exercise 2 - Sum of similar measures
    • Lab 3 - Exercise 2 - Solution
    • Lab 3 - Exercise 3 - Context transition
    • Lab 3 - Exercise 3 - Solution
    • Lab 3 - Exercise 4 - Counting invoices
    • Lab 3 - Exercise 4 - Solution
  • Optimizing large models

    • Optimizing large models
    • How many rows do you have?
    • SUM or SUMX?
    • Optimizing degenerate dimensions
    • Dimension bottlenecks
  • Advanced optimizations

    • Advanced optimizations
    • Introduction
    • Division by zero
    • Filter materialization
    • Optimizing IF statements
    • Column filters vs table filters
    • Currency conversion
    • Lab 4 - Exercise 1 - Open orders
    • Lab 4 - Exercise 1 - Solution
    • Lab 4 - Exercise 2 - Optimizing if-then-else
    • Lab 4 - Exercise 2 - Solution
    • Lab 4 - Exercise 3 - Currency conversion
    • Lab 4 - Exercise 3 - Solution
    • Lab 4 - Exercise 4 - New customers
    • Lab 4 - Exercise 4 - Solution
  • Optimization examples

    • Optimization examples
    • Introduction
    • Events in progress
    • New and returning customers
  • Conclusion

    • Conclusion
Student Rating
31 ratings
5-star Reviews (17 of 20)
  • Ezequiel Matos (Jan 6, 2022)

    Excellent course.

  • Mark Levy (Jun 7, 2021)

    Not related to Review: I like to use the yellow color pen when reading along with your commentary: Is it possible to have other color options as well? e.g orange, and green?? Also I notice that when I print off the commentary - even though I am using color setting - I am unable to print the color highlights that I make . It would be useful to allow color printing to the allow that highlighted sections to print. Related to REVIEW: Very detailed and has complex information that needs time to be digested. I will go through this course many more times in order to be comfortable with it.

  • Mark Levy (Jun 6, 2021)

    Very detailed and has complex information that needs time to be digested. I will go through this course many more times in order to be comfortable with it.

  • Igor Poleshchuk (Jan 25, 2021)

    For a long time, I doubted whether I needed this course or not. In the end, I decided to go through it and did not regret it for a single second! I feel that after completing the course, I have moved to a new level in my understanding of DAX.

  • Ross Waterston (Nov 18, 2020)

    That was great, really enjoyed the challenges set in the labs. This has been a fantastic rebalance of my DAX. Correcting some of the "lazy" that have no doubt crept in while also firming up the reasoning behind some of the things I do "just because" now.

  • Leo Godin (Oct 26, 2020)

    Great course. I'd read a lot of articles on optimization, but this course walks you through a process for optimizing and shows great solutions. The important part is it teaches you how to think about optimizing DAX code.

  • David Williams (Jun 3, 2020)

    A fabulous training course that I will start using immediately and that I will have to review a few times to be able to use all of the value provided! I absolutely recommend it.

  • Kenneth Barber (Apr 23, 2020)

    SQLBI has done it again! Very thorough and very well explained. This is a great supplement to Mastering DAX and is essential for writing fast DAX code. DAX (or at least Power Pivot in Excel) is a bit sensitive; it doesn't take much for DAX code to run slowly and have you wondering how to make it faster.

  • Paulo Rocha (Mar 12, 2020)

    Very important to learn the concepts of Formula Engine and Store Engine and understand how Vertipaq works. The course is helping me to think optimization every step of the way. Thanks again to Maestros Alberto and Marco for being the guiding stars of the Power BI Community.

  • Luisa Canelas (Dec 23, 2019)

    Excellent workshop! Thanks a lot!

  • Stefan Feldmann (Nov 1, 2019)

    Dear Alberto and Marco. Many thanks for this course, which exceeded my expectations. Especially the introduction to the correct understanding of FE, SE, Query Plan etc. has widened the horizon in the way reports will be analyzed and developed in the future. Now I am happy to go into practice with all this information and to collect and exchange experiences with it. Thanks, Stefan

  • cosmin ioan (Jul 29, 2019)

    The best course anywhere on the market, bar none, taught by the leading experts in the field! Many thanks, Marco, Alberto, for the great course, excellent format and appropriate presentation and mix of demos and exercises! Cos

  • Yadhuram MC (Mar 2, 2019)

    Easy to follow and very specific

  • Yadhuram MC (Mar 2, 2019)

    Very easy to follow

  • Georgi Petkov (Jan 20, 2019)

    Great content and teaching techniques!

Would you prefer a classroom course?

This video course is based on a classroom course we teach all around the world. If you prefer a classroom learning experience, take a look at the dates below for a list of our upcoming classroom courses!
Sorry, there are no classroom courses scheduled at this time.