Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Anonymous
Not applicable

DAX formula execution

Are DAX measures\calculated column executed by Mashup engine of Power BI desktop or the analysis server instance or both?

1 ACCEPTED SOLUTION
AntrikshSharma
Super User
Super User

You query Analysis Services/ tabular model using DAX or MDX, and then the query is executed using the Formula engine, FE generates a logical query plan and to retrieve the data it sends a part of the request to Storage engine / Vertipaq, SE stores the data in memory and then returns the uncompressed data to FE on the basis of the query executed. So, no DAX has nothing to do with M both work independently, but where you create a column has an impact on the compression of the data, if a column is created in M then during loading to the model the engine uses that column as the part of optimization process identifying the kind of encoding to use to store the data in conjunction with other columns, but when you create a calculated column the data has already been analyzed and compressed by engine, but that doesn't mean your new DAX calculated column won't be compressed, it will be encoded but that process wouldn't consider other columns of the table during compression which can reduce the compression.

View solution in original post

4 REPLIES 4
AntrikshSharma
Super User
Super User

You query Analysis Services/ tabular model using DAX or MDX, and then the query is executed using the Formula engine, FE generates a logical query plan and to retrieve the data it sends a part of the request to Storage engine / Vertipaq, SE stores the data in memory and then returns the uncompressed data to FE on the basis of the query executed. So, no DAX has nothing to do with M both work independently, but where you create a column has an impact on the compression of the data, if a column is created in M then during loading to the model the engine uses that column as the part of optimization process identifying the kind of encoding to use to store the data in conjunction with other columns, but when you create a calculated column the data has already been analyzed and compressed by engine, but that doesn't mean your new DAX calculated column won't be compressed, it will be encoded but that process wouldn't consider other columns of the table during compression which can reduce the compression.

Anonymous
Not applicable

Thank you for the quic kreply.

Are my below understaning correct, i got a conflicting aswer from PBI support that DAX is executed by mashup enfine hence  posted this is community forum to confirm.


Mashup engine is in action when the report(dataset) is getting refreshed in power bi service\gateway\desktop. Else it sits idle?

 When a slicer is selected on the report page, the data is fetched from Analysis server and Mashup engine does nothing, the processing is done by formula\storage engine which is not part of mashup?

Yes, that is correct understanding can you please share their response link, if it is public, I would like to read what they meant by that.
Anonymous
Not applicable

Their response was over an email that DAX is executed by Mashup engine, later when i asked them to check again and provide a documntation they gave similar explanation provided by you.

Thank you for helping on this.

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

Find out what's new and trending in the Fabric community.

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.