Just as specific columns and relationships of a data model can be prioritized for performance per the prior recipe, frequently used DAX measures can also be evaluated for potential improvements. Existing DAX measures may contain inefficient data access methods that generate additional, unnecessary queries or which largely execute in a single CPU thread. Revising measures to better leverage the multi-threaded storage engine and to avoid or reduce unnecessary queries and iterations can deliver significant performance improvements without invasive, structural modifications to the model.
In this recipe, the DAX queries executed by Power BI visuals are captured in SQL Server Profiler and then analyzed in DAX Studio. The first example highlights a common misuse of the FILTER() function for basic measures. In the second example, two alternative...