To improve SSAS tabular performance or to improve your DAX query, it is important to know the different between formula engine and storage engine. Here, I have created a table for you to better distinguish these two in Tabular (I need to reinforce it is for tabular modeling not multidimensional because the back end technology used is quite different). Both engines play vital roles to process DAX query requests.
|Category||Formula Engine||Storage Engine|
|Query received||Interpret DAX/MDX formula||Can handle single logic (xmSQL) from formula Engine|
|Target Data||Iterate over datacaches produced by storage engine (datacaches are in-memory tables)||Iterate over compressed data in vertipaq column stores|
|Result||Produce result set and send back to requestor||Produce Datacaches send back to formula Engine|
|Thread||Single – Threaded||Multi – Threaded|
|Area of focus for Performance Tuning||Check physical plan for bottleneck||Check xmSQL query for bottleneck|