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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Storage Engine vs Formula Engine

Hi,

 

There are lot of articles in the Internet saying that is worth to use Storage Engine everytime it's possible. I can examine using of FE vs SE in Dax Studio, but in fact, I do not know how to increase using of SE. Do you know any methods which helps with that? What can I do to use Storage Engine often?

1 ACCEPTED SOLUTION
v-kelly-msft
Community Support
Community Support

Hi @Anonymous ,

 

DAX queries from Power BI report visuals are resolved by the DAX formula engine and the DAX storage engine. The storage engine is the in-memory columnar compressed database for import mode models (also known as VertiPaq) and is the relational database for DirectQuery models. In either mode, the formula engine is responsible for generating query plans and can execute all DAX functions, including complex expression logic, though it is limited to a single thread and no cache.

The formula engine sends requests to the storage engine and the storage engine, if it does not have the requested data in an existing data cache, utilizes multiple threads to access segments of data (1 thread per segment, 1M rows per segment) from the data model. The storage engine executes simple join, grouping, filter, and aggregations, including distinct count to make requested data caches available to the formula engine. Given this architecture a fundamental DAX and Power BI model design practice is to maximize the allocation of queries to the storage engine and minimize the size of data caches operated on by the formula engine.

Best Regards,
Kelly

View solution in original post

1 REPLY 1
v-kelly-msft
Community Support
Community Support

Hi @Anonymous ,

 

DAX queries from Power BI report visuals are resolved by the DAX formula engine and the DAX storage engine. The storage engine is the in-memory columnar compressed database for import mode models (also known as VertiPaq) and is the relational database for DirectQuery models. In either mode, the formula engine is responsible for generating query plans and can execute all DAX functions, including complex expression logic, though it is limited to a single thread and no cache.

The formula engine sends requests to the storage engine and the storage engine, if it does not have the requested data in an existing data cache, utilizes multiple threads to access segments of data (1 thread per segment, 1M rows per segment) from the data model. The storage engine executes simple join, grouping, filter, and aggregations, including distinct count to make requested data caches available to the formula engine. Given this architecture a fundamental DAX and Power BI model design practice is to maximize the allocation of queries to the storage engine and minimize the size of data caches operated on by the formula engine.

Best Regards,
Kelly

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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

Top Solution Authors
Top Kudoed Authors